mirror of
https://gitea.com/gitea/tea.git
synced 2025-11-22 07:35:16 +01:00
Only prompt for SSH passphrase if necessary (#844)
Since one of the last updates (I cannot tell you exactly which one, but likely 0.10 or 0.11), tea always asks me for my ssh passphrase without actually needing it. I do not have anything configured regarding SSH keys. The passphrase is not even verified, you can enter anything there. But as this is quite annoying, I fixed this by moving the prompt to only be used when a ssh key/cert is configured. Would be nice to get this in. Thanks! Reviewed-on: https://gitea.com/gitea/tea/pulls/844 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: qwerty287 <qwerty287@posteo.de> Co-committed-by: qwerty287 <qwerty287@posteo.de>
This commit is contained in:
@@ -282,23 +282,13 @@ func (l *Login) Client(options ...gitea.ClientOption) *gitea.Client {
|
|||||||
options = append(options, gitea.SetDebugMode())
|
options = append(options, gitea.SetDebugMode())
|
||||||
}
|
}
|
||||||
|
|
||||||
if ok, err := utils.IsKeyEncrypted(l.SSHKey); ok && err == nil && l.SSHPassphrase == "" {
|
|
||||||
if err := huh.NewInput().
|
|
||||||
Title("ssh-key is encrypted please enter the passphrase: ").
|
|
||||||
Validate(huh.ValidateNotEmpty()).
|
|
||||||
EchoMode(huh.EchoModePassword).
|
|
||||||
Value(&l.SSHPassphrase).
|
|
||||||
WithTheme(theme.GetTheme()).
|
|
||||||
Run(); err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if l.SSHCertPrincipal != "" {
|
if l.SSHCertPrincipal != "" {
|
||||||
|
l.askForSSHPassphrase()
|
||||||
options = append(options, gitea.UseSSHCert(l.SSHCertPrincipal, l.SSHKey, l.SSHPassphrase))
|
options = append(options, gitea.UseSSHCert(l.SSHCertPrincipal, l.SSHKey, l.SSHPassphrase))
|
||||||
}
|
}
|
||||||
|
|
||||||
if l.SSHKeyFingerprint != "" {
|
if l.SSHKeyFingerprint != "" {
|
||||||
|
l.askForSSHPassphrase()
|
||||||
options = append(options, gitea.UseSSHPubkey(l.SSHKeyFingerprint, l.SSHKey, l.SSHPassphrase))
|
options = append(options, gitea.UseSSHPubkey(l.SSHKeyFingerprint, l.SSHKey, l.SSHPassphrase))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,6 +303,20 @@ func (l *Login) Client(options ...gitea.ClientOption) *gitea.Client {
|
|||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (l *Login) askForSSHPassphrase() {
|
||||||
|
if ok, err := utils.IsKeyEncrypted(l.SSHKey); ok && err == nil && l.SSHPassphrase == "" {
|
||||||
|
if err := huh.NewInput().
|
||||||
|
Title("ssh-key is encrypted please enter the passphrase: ").
|
||||||
|
Validate(huh.ValidateNotEmpty()).
|
||||||
|
EchoMode(huh.EchoModePassword).
|
||||||
|
Value(&l.SSHPassphrase).
|
||||||
|
WithTheme(theme.GetTheme()).
|
||||||
|
Run(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// GetSSHHost returns SSH host name
|
// GetSSHHost returns SSH host name
|
||||||
func (l *Login) GetSSHHost() string {
|
func (l *Login) GetSSHHost() string {
|
||||||
if l.SSHHost != "" {
|
if l.SSHHost != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user