2017-07-31 154 views
2

我有几台主机HostA,HostB和一个密钥KeyX用于ssh两个主机。我试图首先ssh到HostA,然后从HostA ssh到HostBssh密钥转发无ssh-add

以下步骤不起作用:

localhost :> ssh -i KeyX HostA 
hosta :> ssh -A HostB 

SSH来HostB失败,抱怨错误关于 “权限被拒绝(公钥)”。

以下步骤工作:

localhost:> ssh-add KeyX 
localhost:> ssh -i KeyX HostA 
hostA:> ssh -A HostB 

作品。据我所知,ssh-add为ssh-agent添加了密钥,但不明白为什么第一个进程不起作用以及为什么向代理添加密钥会起作用。有人可以解释什么是由ssh-add满足的关键转发所需要的,从可用的公共文档中不清楚。

回答

1

据我所知,SSH-ADD增加了关键的ssh-agent

,但不明白为什么第一过程中没有工作,为什么增加的关键,代理有所作为。

钥匙在您的机器上。如果您没有将其添加到代理并且未将此代理转发到hostA(可能在配置中指定),它将不会看到该密钥,并且将无法验证您的身份。

有人可以解释什么是由ssh-add满足的关键转发所需的,从可用的公共文件中不清楚。

使用ssh-add -l。它会列出您在座席中拥有的钥匙。起初它没有列出你的钥匙,在ssh-add之后。您应该能够在hostA上运行相同的命令,您应该在其中看到从本地计算机转发的相同密钥。

+0

谢谢,您的回复让我意识到,我错过了不同之处b/w SSH密钥代理与SSH客户端。本文讨论一步一步的过程,它有助于http://www.unixwiz.net/techtips/ssh-agent-forwarding.html#fwd – broun