升级到15.1后,ssh连不上了怎么搞。

从15.0,升级到15.1后,再用putty去连服务器。putty出现 Fatal Error.

Remote side unexpectedly closed network connection.

两台服务器都这样,其它的Aapache+php+mariadb运行正常。

自行解决了
cd /etc/ssh
rm *key*
systemctl restart sshd
就可以了,以前的key不知道怎么的,新的系统似乎没有权限读取。

你这个 key 放的位置不对吧,我们的 key 是放 /home/用户名/.ssh 下面的,你那个位置更新就会被覆盖吧

他说的应该是host key,这个确实可能是bug,升级脚本没写好啥的

opensuse从15.0升级到15.1后,ssh连接不上的解决办法

删掉毕竟是下策,推荐sudo chmod 600 /etc/ssh/ssh_host_*_key

1赞

@onepx

你删的那些 key 不属于任何软件包,好像是 openssh 在安装包的时候创建的,应该是那个 post install 脚本出的问题。

sudo /usr/sbin/sshd #测试下ssh的守护进程会抛出一些有用的信息(这里必须使用绝对路径:hole:);
然后会提示秘钥文件的权限 too open ,网上查了下,确实是 /etc/ssh/ssh_host_ecdsa_key 文件的权限的问题,看了下报错状态下,该文件的权限是0640,需要改成0600(也就是平时说的600):innocent:
sudo chmod 600 /etc/ssh/ssh_host_ecdsa_key 就行了。

以上是自己摸索的,感觉好坎坷,浪费了三四天的时间,竟然是权限问题:crazy_face:
实际上,最后的解决方法和 @runapp 是一样的。

另外, @onepx 提供的链接里说用的测试 sshd 错误信息的方法,我解决问题之前试过,并没有给我抛出那些错误信息。而是在用 sudo /usr/sbin/sshd 测试的时候出现了那些信息,这点我很纳闷…

啊哈,因为私钥要600是基本常识(并不)
下次遇到启动不起来可以试试journalctl -u sshd看一下日志,应该和直接执行sshd的输出一样的。@onepx 文中应该也是这么看的,或者status看最后几行。