Это работает в macOS < 10.13
через командную строку:
$ security find-generic-password -s "SSH" -a "/Users/<user>/.ssh/id_rsa"
Или используя этот go фрагмент (используя https://github.com/keybase/go-keychain):
usr, _ := user.Current()
dir := usr.HomeDir
keyPath, err := filepath.Abs(filepath.Join(dir, ".ssh/id_rsa"))
if err != nil {
log.Fatal(err)
}
keyPassword, err := GetGenericPassword("SSH", keyPath, "", "")
if err != nil {
log.Fatal(err)
}
fmt.Printf("keyPassword = %s\n", keyPassword)
В macOSВысокая Сьерра, это было изменено, не работает через командную строку и не может заставить его работать, пытаясь это:
keyPassword, err := keychain.GetGenericPassword("OpenSSH", keyPath, "SSH: "+keyPath, "com.apple.ssh.passphrases")
if err != nil {
log.Fatal(err)
}
fmt.Printf("keyPassword = %s\n", keyPassword)
Я финансирую этот пост, может быть связано: https://apple.stackexchange.com/a/268175/104123.
Есть идеи, возможно ли это в последних версиях macOs?