在 RHEL 8 和更早版本上,SSH 主机密钥通常在丢失时/etc/ssh
由服务自动生成。sshd
通常应该有:
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
重启节点甚至systemctl restart sshd
应该就足够了。
但是从次要版本 RHEL 8.7 开始,这可能不再起作用,并且sshd
崩溃会抱怨日志中缺少主机密钥。为什么?我该如何解决这个问题?
该
sshd
服务默认调用sshd-keygen.target
,它检查目录中主机密钥的可用性/etc/ssh
并在丢失时生成它。然而,这个众所周知的功能可能会被新版本的
cloud-init
. 由于cloud-init-22.1-5.el8.noarch
有新文件:内容:
因此,当您使用时,
cloud-init
您现在有 2 个选项:ssh-keygen -A
(请参阅如何更改 SSH 主机密钥?了解更多详细信息和选项。简单地把
#
标志放在前面ConditionPathExists...
然后使用 重新加载 systemd 配置
systemctl daemon-reload
。通常的行为应该再次起作用。