MacOSX Snow Leopard 中记住的 SSH 密码

Ste*_*ini 8 security ssh mac-osx

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

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

我输入了密码。弹出窗口消失,终端正确登录到 Linux 机器。现在,如果我注销,并再次尝试 ssh,则登录时无需任何密码请求,这不是我想要的。

我检查过的东西:

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

密码存储在哪里?到底发生了什么,我如何在每次 ssh 尝试时强制请求密码?

vor*_*aq7 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导致它不仅卸载,而且将其标记并记住为禁用。