我正面对雪豹的一个非常奇怪的情况。 我有一个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发生没有任何密码的请求,这不是我想要的。
我检查的东西:
密码存储在哪里? 到底发生了什么事情,以及如何在每次ssh尝试时强制使用密码的请求?
当需要您的私钥时,OS X将为您自动启动ssh-agent。 直到您退出OS X或删除密钥(通过ssh-add -d或ssh-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导致它不仅仅是卸载,而是将它标记为禁用。