通过代理进行 ssh-agent 转发会锁定 ssh 连接

通过代理进行 ssh-agent 转发会锁定 ssh 连接

所以我遇到了一个奇怪的 ssh 代理转发问题,我正在尝试调试。防火墙内有许多机器,我可以通过代理访问,或者如果我在防火墙内连接,可以直接访问。除了一种情况外,一切都正常——如果我通过代理连接到一台机器,然后尝试执行任何事物使用 ssh-agent(通过 ssh 代理转发),它会锁定——连接挂起并最终超时,断开 ssh 会话。只要我不做任何试图访问代理的事情,它就可以正常工作。但即使是锁定ssh-add -l

这只发生在一台主机上,并且仅当通过代理连接时才会发生。通过代理连接的其他主机或直接连接此主机(当在防火墙内时)都可以正常工作。

所以我的问题是,我该如何调试它?我尝试使用ssh -v连接时获取有关正在发生的事情的一些信息。当我在工作案例中使用它时,我看到类似以下内容:

$ ssh-add -l
debug1: client_input_channel_open: ctype [email protected] rchan 2 win 65536 max 16384
debug1: channel 1: new [authentication agent connection]
debug1: confirm [email protected]
debug1: channel 1: FORCE input drain
...key fingerprints from the agent.

但在非工作情况下我只是得到

$ ssh-add -l
debug1: client_input_channel_open: ctype [email protected] rchan 2 win 65536 max 16384
debug1: channel 1: new [authentication agent connection]
debug1: confirm [email protected]

然后它就挂起了(并在几分钟后超时,断开整个 ssh 会话。)

所有相关主机均在运行OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g 1 Mar 2016

我正在做代理

ProxyCommand /bin/nc -x proxy_host:1080 %h %p

代理转发

ForwardAgent yes

在我的 .ssh/config 文件中。我已尽可能地精简了这些内容(因此从配置文件中删除了其他所有内容,但行为没有变化)。

在目标机器上,代理套接字看起来很正常:

--> echo $SSH_AUTH_SOCK 
/tmp/ssh-WMT414Uq0q/agent.2170

--> ls -l $SSH_AUTH_SOCK
srwxrwxr-x 1 cdodd cdodd 0 Apr  2 09:06 /tmp/ssh-TTx7SEvwkx/agent.2170=

相关内容