操作报错现象,ssh远程服务器,提示ssh_exchange_identification: read: Connection reset by peer ,但是能够ping的通
执行ssh -v user@ip 查看细节详情。(盗网上一张图)
网上有种解决思路,说是频繁连接远程服务器,导致服务器将自己的ip加入到 /etc/hosts.deny中,可以进入服务器的控制中心,在 vi /etc/hosts.allow
追加 sshd: ALL
再执行 service sshd restart
执行完后发现并没有生效,那我遇到的应该不是这个问题。
再次连接远程服务器时,报错connection refused,但是依旧能ping的通,怀疑ssh通道问题
去管理界面上执行 service sshd status ,发现Failed to start OpenSSH Server daemon
查看端口22是否被占用,lsof -i :22 发现并没有被tcp进程绑定,
或者执行 netstat -ant|grep 22 发现并没有被tcp 监听
查看进程与端口映射关系 vi /etc/services 发现 Port 22 是正确的
执行 sshd -t 看到提到了目录 /var/lib/empty ,但是发现本地却没有这个目录,跳去集群内的其他机器发现是存在这个目录的,而且这个目录下为空。后续将这个目录建立后,发现sshd服务能够起来了。
后续在网上查找,存在相同情况
参考 {SLES12: /var/lib/empty is missing, SSHD does not start } https://github.com/rear/rear/issues/864
同样这个目录的的权限也有要求为755,当权限不对时也可能导致sshd服务起不来。