Case:
ubuntu在从Ubuntu 16.04 LTS 升级到18.04 的时候,执行 do-release-upgrade -d 后,发现ssh无法登陆服务器,
Solution:
1、通过ssh -v root@77.75.154.11,发现如下报错:
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 77.75.154.11 [77.75.154.11] port 22.
debug1: connect to address 77.75.154.11 port 22: Connection refused
ssh: connect to host 77.75.154.11 port 22: Connection refused
2、通过登陆console 去查看ssh.service服务是否有问题。
3、查看sshd_config配置文件(/etc/ssh/sshd_config)是否配置错误
A: /usr/sbin/sshd -T
B: /usr/sbin/sshd -ddd
4、可以发现可能是
/etc/ssh/sshd_config 里面Ciphers配置文件有问题,故需要检查相关的Ciphers是否支持并正确被配置。通过以下命令检查:
使用 "sshd -t -o Ciphers=..." 命令一个个测试来找到有问题的cipher。
或者可以尝试下面这段代码(将您文件的84行中的所有cipher复制到echo命令中)进行批量测试:
for c in $(echo 'aes128-ctr,aes192-ctr,...' | sed -e "s/,/ /g"); sshd -t -o Ciphers=$c done
5、发现确实有不支持的Ciphers配置,把 blowfish-cbc开始的ciphers 直接都删除,保留如下:
直接删除,然后重启 systemctl status ssh.service
ssh.service服务正常启动。
至此以上ssh登陆问题解决!