我使用ssh-keygen -t rsa
来生成 RSA 密钥对。我在id_rsa.pub
文件中看到用户名和主机名。
但我想知道哪些元素会影响密钥对。例如,如果我更改了主机ip,是否需要重新生成密钥对?还有主机名?或者甚至我重新安装操作系统?
我什么时候应该重新生成密钥对?
答案1
密钥是随机生成的。就其起源而言,没有什么比这更特别的了。这意味着只要您持有私钥,就无需更换它。
在SSH中,用户密钥通常用于标识用户和源系统的组合。这意味着密钥不会在同一系统上的用户之间或多个系统上的同一用户之间共享。
尽管这不是技术限制,因为您可以毫无问题地违反这些规则中的任何一个。这只是良好的安全实践。
在公钥 ( id_rsa.pub
) 中,最后一个字段是注释。该ssh-keygen
命令通常将您的用户名和主机名作为最后一个字段。除了作为识别密钥的注释之外,这没有其他任何用途。至于为什么要放用户名和主机名,请参见上一段。
直接回答您的问题“我什么时候应该重新生成密钥对?”:
当密钥已被泄露并且可能被其他人获取时,您应该重新生成密钥。此时,您还应该从所有信任它(文件authorized_keys
)的远程系统中撤销以前的公钥。
这确实是唯一的原因。如果您重新安装操作系统、更改主机名等,则无需重新创建密钥。如果你愿意的话也可以。
答案2
从RFC4716我们知道其中的user@hostnameid_rsa.pub
只是一个注释,它不会影响密钥对的内容。
我认为用户名是影响内容的元素之一,因为我使用两个用户在同一主机上拥有不同的密钥对:-)