SSH 转发的哪一部分设置了 SSH_AUTH_SOCK?

SSH 转发的哪一部分设置了 SSH_AUTH_SOCK?

我正在尝试让 SSH 代理转发从我的 Mac 运行到 Debian 服务器。在我的 Mac 上,我已验证我已:

  • SSH_AUTH_SOCK存在
  • ssh-add -l显示我的身份
  • ./ssh/config具有启用 ForwardAgent 的设置

无密码登录远程服务器一切正常。但是,我的身份在那里都不可用,而且 SSH_AUTH_SOCK 为空。

我想了解如何在远程环境中进行设置,以及我缺少什么才能使其工作?

更新:

AllowAgentForwarding=yes我的服务器是在 sshd_config 和ssh_config 中设置的ForwardAgent=yes

我发现一些教程建议运行,所以我尝试了一下,但我怀疑这是为客户端机器准备的。当我在服务器上运行它时,它确实设置了一个 SSH_AUTH_SOCK,但它似乎没有连接回客户端代理,并且它显示“代理没有身份”。eval ``ssh-agent

答案1

在装有 OS 10.6.x 的 Mac 上,我发现代理转发不起作用,直到我将钥匙添加到 Apple 钥匙串,如下所示:

ssh-add -K ~/.ssh/id_rsa 

哪里~/.ssh/id_rsa包含我的私人 ssh 密钥

我有一篇关于设置 ssh 主机配置条目以简化 ssh 命令行这可能会引起人们的兴趣

答案2

服务器还必须启用代理转发。

答案3

运行代理的客户端需要启用代理转发。而不是服务器。

永远不要全局启用它,而是在 ~/.ssh/config 中按主机启用它:

Host myserver.foo.local
ForwardAgent yes

或者连接时使用-A选项:

ssh -A myserver.foo.local

相关内容