ssh_exchange_identification: Connection closed by remote host
无法调用ssh相关命令,原因出在了VPN代理上面
特别说明
我这次遇到的问题,是因为自己的 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