我正在尝试使用连接到远程服务器SSH ForwardAgent
,但我一直面临同样的问题:
ssh_exchange_identification: Connection closed by remote host
我已按如下方式设置我的 ~/.ssh/config:
#Proxy
Host my.remote.proxy.com
Hostname IPProxy.IP.IP.IP
User my.user
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
#Remote server
Host my.remote.server.com
Hostname IPRemote.IP.IP.IP
User my.user
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh [email protected] nc -w 10 %h %p 2> /dev/null
我可以正确地通过 ssh 进入my.remote.proxy.com。我能够正确地从my.remote.proxy.com到我的远程服务器使用 ssh(以及用于测试目的的私人)。
我的问题是我无法从我的主机 ssh 到我的远程服务器使用转发代理。
我已经为两者设置了 /etc/ssh/sshd_configmy.remote.proxy.com和我的远程服务器如下 :
AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
我检查了一下,两个服务器都使用带有转发代理的 openssl 工作版本:
openssh-7.4p1-13.el7_4.x86_64
openssh-clients-7.4p1-13.el7_4.x86_64
openssh-server-7.4p1-13.el7_4.x86_64
/var/log/secure 来自my.remote.proxy.com正在返回:
Nov 15 04:39:07 [localhost] sshd[7866]: Accepted publickey for my.user
Nov 15 04:39:07 [localhost] sshd[7866]: pam_unix(sshd:session): session opened for user my.user by (uid=0)
Nov 15 04:39:08 [localhost] sshd[7869]: Received disconnect from IPPUBLIC port 61378:11: disconnected by user
Nov 15 04:39:08 [localhost] sshd[7869]: Disconnected from IPPUBLIC port 61378
Nov 15 04:39:08 [localhost] sshd[7866]: pam_unix(sshd:session): session closed for user my.user
my.remote.server.com 上的 /var/log/secure 没有显示任何内容。
答案1
解决方案是使用 -W 而不是 nc 来转发连接,因为 nc 包没有在 my.remote.server 上远程安装
ProxyCommand ssh [email protected] -W %h:%p 2> /dev/null
-W 主机:端口 请求将客户端上的标准输入和输出通过安全通道转发到主机端口。隐含 -N、-T、ExitOnForwardFailure 和 ClearAllForwardings。仅适用于协议版本 2。