我从 sshlocal
到X
,我想使用受密码保护的 RSA 密钥从 sshX
到Y
,我的所有私钥都存储在 上local
。但是,
local> ssh -A X
X> ssh Y
Received disconnect: 2: Too many authentication failures
这是因为我在代理中拥有太多密钥,在服务器Y
认为我是恶意的之前它无法找到正确的密钥。我可以通过从我的中删除所有密钥(~/.ssh
除了用于X
和的密钥)来确认这一点Y
,然后 ssh 命令就可以正常工作了。现在我无法指定要使用的正确密钥,ssh Y -o IdentiyFile=path
因为密钥的正确路径是 on local
,而不是 on X
。此外,如果我指定-o IdentitiesOnly=yes
,它永远不会查找代理提供的密钥,它只会查找 中的密钥X:~/.ssh
。我该如何解决这个问题?
答案1
好的,我找到了解决方案。在系统上X
,我创建了一个~/.ssh/config
部分,Y
内容如下:
Host Y
...
IdentityFile ~/.ssh/id_Y.pub
...
其中是本地 的公钥~/.ssh/id_Y.pub
副本(在 上) 。只需要知道公钥在哪里,它会从代理那里找到它所需的一切。X
Y
sshd