如何更改 SSH 主机密钥?

Pas*_*nus 42 debian ssh-keys fingerprint

我克隆了一个服务器,因此它们具有相同的 RSA 密钥指纹。

它似乎在/etc/ssh/ssh_host_rsa_key.pub.

改变它的正确方法是什么?

谢谢。

phi*_*ppe 46

或者,删除密钥并

ssh-keygen -A
Run Code Online (Sandbox Code Playgroud)

解释:

-A:对于不存在主机密钥的每种密钥类型(rsa1、rsa、dsa、ecdsa 和 ed25519),使用默认密钥文件路径、空密码、密钥类型的默认位和默认值生成主机密钥评论。/etc/rc 使用它来生成新的主机密钥。


Pas*_*nus 33

按照以下步骤重新生成 OpenSSH 主机密钥

  1. 删除旧的 ssh 主机密钥: rm /etc/ssh/ssh_host_*
  2. 重新配置 OpenSSH 服务器: dpkg-reconfigure openssh-server
  3. 更新所有 ssh 客户端~/.ssh/known_hosts文件

参考


Oli*_*pro 17

对于执行此操作的通用方法:

ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key

ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key

ssh-keygen -q -N "" -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

ssh-keygen -q -N "" -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

根据您的 OpenSSH 版本支持的密钥混合和匹配。当前的实现通常只生成 rsa、ecdsa 和 ed25519。

请注意,该-b参数可在(大多数)情况下用于指定密钥大小。

您应该选择适合密钥预期生命周期的密钥大小以及您认为可以接受的打开连接的时间量,因为在较慢的硬件上影响会更加明显。例如,如果您定期滚动密钥,则使用默认的 RSA 密钥大小(撰写本文时为 2048)绝对没问题(同样,截至撰写本文时)。


Hei*_*ter 6

如果您使用的是 RHEL、CentOS 或 Fedora,那么您只需删除它们并重新启动 SSHd 服务即可。他们将会重生。

  • 不,这不起作用。`/etc/init.d/ssh restart<换行> 无法加载主机密钥:/etc/ssh/ssh_host_rsa_key<换行> 无法加载主机密钥:/etc/ssh/ssh_host_dsa_key<换行> [...] 正在重新启动OpenBSD Secure Shell 服务器:sshd 无法加载主机密钥:/etc/ssh/ssh_host_rsa_key<换行> 无法加载主机密钥:/etc/ssh/ssh_host_dsa_key` (3认同)