在MacOSX Snow Leopard中记住了SSH密码

我正面对雪豹的一个非常奇怪的情况。 我有一个Linux服务器,configuration为接受只通过RSA密钥authentication的ssh连接。 没有密码。 在我的笔记本电脑上,我用ssh-keygen正确部署了RSA密钥,而当我这样做时,我添加了一个密码短语。 然后我移动了Linux服务器上的id_rsa.pub .ssh / authorized_keys。

到现在为止还挺好。 现在我尝试从我的Snow Leopard笔记本电脑login到Linux机器上。 我得到一个窗口popup窗口询问我的密码。 这是令我惊奇的第一件事情,因为我预料到了一个shell密码请求,而不是一个popup窗口。 根据此popup窗口中的详细信息,请求密码的应用程序是ssh。 此外,还有一个选项“记住钥匙串中的短语”,该选项被禁用。

我input我的密码。 popup消失,terminal正确login到Linux机器。 现在,如果我注销,并再次尝试SSH,login发生没有任何密码的请求,这不是我想要的。

我检查的东西:

  • 没有任何东西被保存到钥匙串中。 浏览了一下,什么也没find。
  • 如果我closures/退出terminal,并打开一个新的,我仍然没有要求密码,并没有任何查询sshlogin。
  • 如果我从MacOSX会话注销并重新login,则在下一次尝试时请求密码,并再次popup一个对话框。 然后它不再被要求。

密码存储在哪里? 到底发生了什么事情,以及如何在每次ssh尝试时强制使用密码的请求?

当需要您的私钥时,OS X将为您自动启动ssh-agent。 直到您退出OS X或删除密钥(通过ssh-add -dssh-add -D删除所有密钥),您的密钥才可以通过ssh-agent(无需再次input密码)来使用。

这与使用ssh-agent的标准* NIX系统行为类似,并且允许代理authentication转发( ssh -A )等有用的function工作,因此您不必将整个networking中的私钥放入。


如果你想禁用ssh-agent(对Mac的所有用户),你可以删除文件/System/Library/LaunchAgents/org.openbsd.ssh-agent.plist


另一种方法是卸载和禁用LaunchAgent:

sudo launchctl -w /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist

-w导致它不仅仅是卸载,而是将它标记为禁用。