如何修复“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服务

原文地址:https://www.cnblogs.com/dj0325/p/9844319.html