如何修复“sshd error: could not load host key”
转载自:https://linux.cn/article-4226-1.html
问题现象:
SSH客户端方面:当你尝试SSH到一台远程主机时,你没有看见登录屏幕,你的SSH连接就立即关闭,并提示此消息:“Connection closed by X.X.X.X”。
SSH服务器方面:在系统日志中,你看到如下错误消息(如,在Debian/Ubuntu上,/var/log/auth.log)。
问题原因:sshd守护进程不知怎么地不能加载SSH主机密钥了。
解决问题步骤:
1.让我们检查能否在相应的地方找到SSH主机密钥。
ls -al /etc/ssh/ssh*key
如果SSH主机密钥在那里找不到,或者它们的大小被截断成为0(就像上面那样),你需要从头开始重新生成主机密钥。
2.重新生成SSH主机密钥
先删除主机密钥:
rm -r /etc/ssh/ssh*key
Ubuntu、 Debian使用dpkg-reconfigure工具重新生成SSH主机密钥
dkpg-reconfigure openssh-server
Centos、RHEL或Fedora ,删除现存密钥,然后重新启动sshd服务
systemctl restart sshd
另一个方法是使用ssh-keygen重新生成密钥
1 ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 2 ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key 3 ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
不必重新启动sshd服务