SSH 公钥支持注释(注释仅由附加在密钥末尾的文本组成),这使其易于识别原本无法识别的 id_rsa.pub 文件。您可以使用注释来存储密钥的所有者、创建时间以及密钥适用于哪台机器等信息。
私钥似乎缺少此功能。ssh-keygen -C comment
将生成一个密钥对,并将注释附加到公钥,但私钥将保持未注释状态。ssh-keygen
有一个-c
参数“请求更改私钥和公钥文件中的注释”,但是
root@kitsune:~# ssh-keygen -c -f id_rsa
Comments are only supported for RSA1 keys.
因此,SSH2 私钥格式似乎没有注释字段。只要将密钥对放在一起并放在正确的位置,这基本上没问题,但文件可能会被复制和移动(当帐户/机器共享密钥时可能会发生这种情况)或意外覆盖,并且它们都具有相同的名称(id_rsa),因此人们可能会忘记哪个密钥是哪个。在没有注释的情况下,保持私钥井然有序的最佳做法是什么?
答案1
将私钥与公钥一起存储,您可以使用以下命令查看存储在公共部分中的注释,但我发现这不是您想要的。没有办法将注释存储在密钥本身中(正如您已经提到的)。
$ ssh-keygen -lf ~/.ssh/id_rsa
2048 SHA256:abcdef[...] [comment] (RSA)
文件可以被复制和移动
这真是个坏主意。你不会希望你的私人数据到处移动。理想情况下,你应该在连接的每个设备上都有一个密钥对。如果你在客户端需要更多密钥,我会使用不同的命名,例如(对公共部分进行适当的命名)。在和/或id_rsa-private-github
中正确配置后,此设置没有任何缺陷。~/.ssh/config
ssh-agent