通过ssh或者rsync访问远程服务器时,有时会遇到如下问题:
ssh_exchange_identification: Connection closed by remote host
最近半年我大概就遇到三次。出现这种情况,可以先登录需要访问的那台服务器,通过netstat -an | grep ssh命令查看,一般就是ipv4和ipv6同时监听导致的。
这时需要查看/etc/ssh/目录下的sshd_config文件,会发现
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
这就表明ssh服务器端默认监听的是ipv4和ipv6,这时只需要取消对ipv4监听的注释,这就意味着只监听ipv4类网络地址,然后重启ssh服务即可。
如果重启失败,就通过kill -9 pid直接杀死该进程,再启动即可。