SSH ForwardAgent 多跳

SSH ForwardAgent 多跳

在过去的两个小时里,我一直在寻找以下问题的解决方案,但没有成功。

发展:

我使用公钥身份验证连接到我的服务器。我使用 ssh-agent 转发,这样就不必管理公钥/私钥。

假设我有服务器A, B and C

如果我从 连接,则效果很好LOCAL ---> A ---> B

如果我这样做的话,效果也会很好LOCAL ---> A ---> C

现在,如果我尝试LOCAL ---> A ---> B ---> C,SSH 无法从 连接B to C

值得注意的是:我以 liquidation 身份连接到服务器 A,而以 root 身份连接到服务器 B。以 liquidation 身份连接到服务器 B 可以解决问题,但这对我来说不是一个选择。

根据用户的建议,我ssh -A每次都使用以确保代理转发已启用。

我发现了一个类似的问题,这里没有答案:是否可以通过多跳链接 ssh-agent 转发?

根据@Zoredache 的说法:https://serverfault.com/a/561576/45671我只需要调整每个中间系统上的客户端配置。我相信我已经这样做了。

答案1

要使代理转发通过多跳工作,您只需调整每个中间系统上的客户端配置即可进行代理转发。

这可能很简单,只需确保您/etc/ssh/ssh_config已配置了此项即可。但是如果您有每个客户端的配置,~/.ssh/config则可能还需要调整这些设置。

Host *
    ForwardAgent yes

-v如果您只是添加该选项,您就可以查看代理转发是否发生或是否存在错误。

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

还要验证您是否设置了有效的环境变量。

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

相关内容