ssh_exchange_identification: Connection closed by remote host

无法调用ssh相关命令,原因出在了VPN代理上面
更新于: 2021-12-19 12:57:28

特别说明

我这次遇到的问题,是因为自己的 VPN 导致,如果有人遇到类似情况,请结合 debug 信息解决

我的方案及问题,应该比较小众,仅自己记录下来,防止以后发生同样的情况,不具有通用参考依据。

特别提醒

搜索这个问题的时候,会遇到很多千篇一律的答案,解决的时候,要慎重使用,解决不当,会造成你无法登录你自己的服务器(虽然有办法解决),浪费时间。

调出 debug 信息

$ ssh -T git@github.com -vv
OpenSSH_7.6p1 Ubuntu-4ubuntu0.5, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /root/.ssh/config
debug1: /root/.ssh/config line 1: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Executing proxy command: exec nc -X 5 -x 127.0.0.1:9091 github.com 22
debug1: permanently_set_uid: 0/0
debug1: permanently_drop_suid: 0
debug1: identity file /root/.ssh/id_rsa.github.com type 0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa.github.com-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.5
ssh_exchange_identification: Connection closed by remote host

这个是我遇到的原因(我自己用了代理程序)

debug1: Executing proxy command: exec nc -X 5 -x 127.0.0.1:9091 github.com 22

 解决方案 ~/.ssh/config

Host github.com
IdentityFile ~/.ssh/id_rsa.github.com

## 删除这一行就行了
# ProxyCommand nc -X 5 -x 127.0.0.1:9091 %h %p