没有 ssh-add 的 ssh key 转发

标签 ssh private-key ssh-agent

我有几个主机 HostA , HostB和一把 key KeyX用于 ssh 到两个主机。我正在尝试 ssh 到 HostA首先,然后 ssh 到 HostB来自 HostA .

以下步骤不起作用:

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将 key 添加到 ssh-agent 但不明白为什么第一个过程不起作用以及为什么将 key 添加到代理会有所作为。有人可以解释 ssh-add 满足的 key 转发需要什么,从可用的公共(public)文件中不清楚。

最佳答案

I understand that ssh-add adds key to the ssh-agent



是的

but don't understand why the first process does not works and why adding the key to the agent make a difference.



key 在你的机器上。如果您不将其添加到代理并且不将此代理转发到 hostA (可能在配置中指定?),它将看不到 key ,也无法对您进行身份验证。

Can someone explain what was required for key forward that is satisfied by ssh-add, wasn't clear from available public documents.



使用ssh-add -l .它将列出您在代理中拥有的 key 。起初它没有列出您的 key ,在 ssh-add 之后确实如此。您应该能够在 hostA 上运行相同的命令,您应该在其中看到从本地计算机转发的相同 key 。

关于没有 ssh-add 的 ssh key 转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45405962/

相关文章:

linux - 从远程主机检索 MD5

openssl - "BEGIN RSA PRIVATE KEY"和 "BEGIN PRIVATE KEY"之间的区别

linux - 请解释 Linux bash exec 和 ssh-agent 行为

java - JSch:从私钥文件创建公钥

macos - 为 bitbucket 帐户设置 ssh key (使用 mac osx)

如果之前没有在 Azure 上运行 ssh-add -K,Git pull 将无法工作

java - 当我尝试保存新凭据时,Jenkins 通过 SSH 发布出现错误

emacs - 我可以流浪汉中的文件吗?

bash - 无法在 shell 脚本中运行 ssh

Javascript读取私钥信息