SSH登录支持Passphrase

This commit is contained in:
GoEdgeLab
2021-11-06 15:31:01 +08:00
parent 9fbe20c18a
commit 5a7e3c265f
8 changed files with 32 additions and 9 deletions

View File

@@ -59,7 +59,13 @@ func (this *BaseInstaller) Login(credentials *Credentials) error {
methods = append(methods, authMethod)
}
} else if credentials.Method == "privateKey" {
signer, err := ssh.ParsePrivateKey([]byte(credentials.PrivateKey))
var signer ssh.Signer
var err error
if len(credentials.Passphrase) > 0 {
signer, err = ssh.ParsePrivateKeyWithPassphrase([]byte(credentials.PrivateKey), []byte(credentials.Passphrase))
} else {
signer, err = ssh.ParsePrivateKey([]byte(credentials.PrivateKey))
}
if err != nil {
return errors.New("parse private key: " + err.Error())
}