[英] macOS Sierra 私钥无法记住密码的解决方案
As described in detail onhttps://openradar.appspot.com/27348363
, macOS/OS X till Yosemite used to remember SSH keys added by commandssh-add -K <key>
Unfortunately this way no longer works and commandssh-add -K
in macOS Sierra no longer saves SSH keys in OS's keychain. As Apple Developer stated:"That’s expected. We re-aligned our behavior with the mainstream OpenSSH in this area."
Solution 1 (recommended)
As Apple updated it'sTechnical Notes
, since 10.12.2 macOS includes version 7.3p1 of OpenSSH and it's new behaviors.
file with the following content:
Host * (asterisk for all hosts or add specific host)
IdentityFile <key> (e.g. ~/.ssh/userKey)
After usage ofssh-add -K <key>
(it's recommended to use absolute path of keys) call commandssh-add -A
on every startup of macOS.
Just add .plist with the following content to the path~/Library/LaunchAgents/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!-- @@@@LingonWhatStart:ssh-add -A@@@@LingonWhatEnd -->
Or create the file with the Lingon app (https://www.peterborgapps.com/lingon/
Or use curl command to download the .plist file to the stated path:
curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist
If you have issues withssh-add: illegal option -- K
after usingssh-add -K
command, you may use full path of the command/usr/bin/ssh-add