我正在尝试让 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