在 macOS/OS X 截止到 Yosemite,ssh-agent 会一直记住 ssh-add -K 添加的 key,即使重启 keychain,ssh-agent 也会自动去读取保存在 keychain 中的密码(passphrase)。但在 Sierra 中,重启 keychain 后,ssh-agent 就不会去读取了。Apple 开发者也对这一现象作出回应

That’s expected. We re-aligned our behavior with the mainstream OpenSSH in this area.

解决办法也很简单,将ssh-add -A 放到 ~/.bashrc 里面就可以了。除了这种方式,还可以在~/.ssh/config里面加入如下配置:

Host * (asterisk for all hosts or add specific host)
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile <key> (e.g. ~/.ssh/userKey)

参考:

除此之外,对于 OpenSSH 4.0 以及之后的版本,引入一新功能 ControlMaster,可以复用之前已经登录的连接,建议开启:

Host *
  ControlMaster auto
  ControlPath ~/.ssh/master-%r@%h:%p
  ControlPersist 60m

参考:

results matching ""

    No results matching ""