MacOSX Snow Leopard中记住的SSH密码


8

我面对雪豹的情况非常奇怪。我有一台Linux服务器,配置为接受仅通过RSA密钥进行身份验证的ssh连接。没有密码。在我的笔记本电脑上,我使用ssh-keygen正确部署了RSA密钥,并且在执行此操作的同时添加了密码短语。然后,我将id_rsa.pub移至Linux服务器.ssh / authorized_keys上。

到目前为止,一切都很好。现在,我尝试从Snow Leopard笔记本电脑登录Linux机器。我看到一个弹出窗口,要求我输入密码。这是让我感到惊讶的第一件事,因为我期望的是shell密码请求,而不是弹出窗口。根据此弹出窗口中的详细信息,请求密码的应用程序是ssh。另外,还有一个选项“在钥匙串中记住短语”,该选项被禁用。

我输入了密码。弹出窗口消失,终端正确登录到Linux计算机。现在,如果我注销并尝试再次使用ssh,则会在没有任何密码要求的情况下进行登录,这不是我想要的。

我检查过的事情:

  • 什么都没有保存到钥匙串中。浏览后一无所获。
  • 如果我关闭/退出终端,然后打开一个新终端,仍然没有要求输入密码,并且ssh登录时没有任何询问。
  • 如果我从MacOSX会话注销并重新登录,则在下次尝试时要求输入密码,并再次出现一个弹出对话框。然后就不再要求了。

密码存储在哪里?到底是怎么回事,以及如何在每次ssh尝试中强制密码请求?

Answers:


10

当需要专用密钥时,OS X将自动为您启动ssh-agent。然后,您可以通过ssh-agent使用密钥(无需再次输入密码),直到您退出OS X或删除密钥(通过ssh-add -dssh-add -D删除所有密钥)为止。

这类似于ssh-agent的标准* NIX系统行为,并允许诸如代理身份验证转发(ssh -A)之类的有用功能起作用,因此您不必将私钥放在整个网络上。


如果要禁用ssh-agent(适用于Mac的所有用户),则可以删除该文件 /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist


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

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

-w导致它不只是卸载,但马克和记住它为禁用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.