如何更改 SSH 主机密钥?

如何更改 SSH 主机密钥?

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

它似乎是在 中定义的/etc/ssh/ssh_host_rsa_key.pub

改变这种状况的正确方法是什么?

谢谢。

答案1

或者,取出钥匙和

ssh-keygen -A

解释:

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

答案2

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

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

参考

答案3

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

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)是完全没问题的(同样,截至撰写本文时)。

答案4

Debian 10.7 用户。混合两个最佳答案是解决问题最干净的方法:

(以 root 身份或自行使用 sudo )

  • 服务器 ABCD :将旧密钥移至“备份”文件夹中

    mkdir -p ~/ssh_backup && mv /etc/ssh/ssh_host_* ~/ssh_backup/.

  • 服务器 ABCD :生成新密钥:

    ssh-keygen -A

  • 客户端:伪造服务器 ABCD 的先前密钥

    ssh-keygen -R A.B.C.D

好了,新的 ssh 密钥就可以使用了。

相关内容