我的 Mac 上的 ssh-agent 会导致某些主机弹出窗口:
[me@my-laptop]$ ssh cargo2
Last login: Tue Aug 3 09:26:43 2010 from trainwreck.arlut.utexas.edu
[me@cargo2]$
但对于其他主机来说:
[me@my-laptop]$ ssh red
然后我得到了可怕的“输入 SSH 密钥‘id_rsa’的密码。”弹出窗口。我知道 ssh-agent 正在运行并且正常工作,因为它在第一个主机上工作正常。
我如何停止所有主机的弹出窗口并使其始终使用 ssh-agent?
以供参考:
$ ssh-add -l
2048 <hex value> /Users/me/.ssh/id_rsa (RSA)
$ ps aux | grep ssh-agent
me 1393 0.0 0.0 2445984 1572 ?? Ss 9:18AM 0:00.10 ssh-agent -s
$ env | grep -i ssh
SSH_AGENT_PID=1393
SSH_AUTH_SOCK=/tmp/ssh-UW4rDdw1jw/agent.1391
答案1
如果 ~/.ssh/id_rsa 存在但 ~/.ssh/id_rsa.pub 不存在,也会发生同样的事情,如果你删除 pub 文件,使用密钥进行身份验证仍然有效,但每次都要求输入密码
答案2
事实证明,我从另一台笔记本电脑复制了我的id_rsa
和id_rsa.pub
文件。我将公钥复制到我尝试登录的服务器,由于某种原因,其中一个服务器接受了客户端主机名不匹配的密钥,而另一个服务器没有接受。
为了解决这个问题,我必须生成一对新的公钥/私钥并分发它。
答案3
您是否在 ~/.ssh/config (或其他地方)中为这两个主机设置了不同的身份?
如果您有不同的身份,那么可能没有在OS X钥匙串中配置。这篇博文(不是我的,只是通过谷歌找到的)讨论了钥匙串如何在 OS X Leopard 中与 ssh-agent 配合使用。
答案4
在我的 Mac Lion 上,这个命令对我有用:rm ~/.ssh/*