如何更改RSA密钥(SSH)的注释字段?


20

我知道我可以简单地打开pubkey并在==s 之后更改注释,但是创建时决定的注释字段也存储在私钥中吗?如果是这样,该如何更改该字段而不从头开始生成一个全新的密钥?


1
请参阅下面的@jhcaiced的回复;那显然是行不通的,这就是我所担心的。
ELLIOTTCABLE 2011年

2
另请参阅可以更改密钥对中的电子邮件地址吗?在ServerFault上。简短的答案是ssh-keygen -c更改评论。
jww

Answers:


15

我在自己的搜索中遇到了这个问题,该问题是在新的ubuntu安装中更改ssh键中的注释。

然后,我在手册页(man ssh-keygen)中进行了搜索,答案就在那里-

ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]

-c      Requests changing the comment in the private and public key files.
        This operation is only supported for RSA1 keys and keys stored in the
        newer OpenSSH format.  The program will prompt for the file containing 
        the private keys, for the passphrase if the key has one, and for the
        new comment.

所以,对我来说,我要做的就是

ssh-keygen -c -C "my new comment" -f ~/.ssh/my_ssh_key

附带说明:ssh-keygen可用于更改用于保护密钥文件的密码,包括删除密码。


我可以使用命令更改RSA和ED25519私钥的注释。(上面的联机帮助页上说This operation is only supported for RSA1 keys
GMaster

3

我只是做了一个小测试,修改了我的私人RSA密钥的“ Comment:”行,它似乎在创建密钥时就已修复。

它是使用Putty生成的RSA密钥,在修改了密钥中的注释后,passwd无法正常工作,我必须将编辑反向更改为相同的原始注释,才能使其再次起作用。


1
我可以确认这一点。我以前尝试过相同的方法,但无法通过文本编辑来做到这一点。我最终通过导入相同的私钥详细信息,更改注释并使用腻子附带的工具再次保存来创建新密钥。
维杰

1
man ssh-keygen -c请求更改私钥和公钥文件中的注释。仅RSA1密钥支持此操作。程序将提示您输入包含私钥的文件,如果密钥包含一个,则提示输入密码,并提示新的注释。我尝试使用-C创建RSA密钥以在创建时指定注释。它什么也没做。我有很多RSA密钥,我希望在运行时能够加以区分ssh-add -l
迈克尔

正如Vad在另一个答案中写道:您可以使用更改评论ssh-keygen -c -C "my new comment" -f ~/.ssh/my_ssh_key
mpb

3

我刚刚创建了一个RSA密钥ssh-keygen -t rsa -b 4096,没有通过,没有评论(所以是标准评论)。我已将其上传到GitHub,然后更改了它的注释。无需重新上传,密钥在更改前后均有效,并且在从GitHub删除后便不再起作用(尽管仅由于此原因而被缓存并起作用,我尚未测试)。

会话日志:

lafk-T470% ssh-keygen -c -f ~/.ssh/id_rsa -C "a new comment"           
Comments are only supported for keys stored in the new format (-o).
lafk-T470% ssh-keygen -c -f ~/.ssh/id_rsa -C "a new comment" -o
Key now has no comment
The comment in your key file has been changed.
lafk-T470% vim ~/.ssh/id_rsa.pub                                       
lafk-T470% tail -1 ~/.ssh/id_rsa.pub                      
ssh-rsa  AAAAB3NzaC1yc2EAAAADAQABAAACAQCocnoRyM7Oy5XA0dLIaiHHQiPnimJvXifliTZI7OX5lqkACsZmUL/D7kUV2uPDyyPZ6lm0UGUHXhOw2QjStQ6ubPRFOKWQyNDkemaQAJtHPYTkT4pGHbsddyko3SRG0Vp4A9CSLRLJXVGuGn1UpfjB/AD0aUcLWVJdgWDuovR09t1YsHbakDpDh4a/2JS52Cvg6x9kEGakZK7ffUQZ64yZvqisEH//e7SbYtpHIp4ZdBMSIIsFIBWvqMXZowahvSMbV7MeLFuwt90dMOFiGJIe0n8oPt/ilQ0FTRcEP7UODyLKbESHkZqoGAHKeQ4ZMCCv7T00KtB98HvWylqvzHg2rIpLMHkVcRGjwlaZUlZB5Zxk6dAJ5HHg1irF+05UeIbQ9YQF/0x63KWQvreEcmLrkbnZ++XeF2ipE7M7CfkYhpJ9XbKZBG4pOQIqLio2rBV9c3+y+sPq4BABXdJKAnIX+h3kFrvOVA7Gy9/YxgQfCJ0ZSmaAV08uqMm91GYGRU9lt2Uf/ALqhW0rH93UWUj232w35rY8GtXucWAjtw3zi6QtZsIAStRzT3Br+Qrqv4MrKvEk+4rzswytaYjCGLrsMDYL7hI/YEJh9vv/v3wGvJGAqLDk1FeBL8tdwEMr1eM9JKl5gVkmBa4MdJkNMe4rHwUIidrW8LW2EEBY3DmDTQ== a new comment
lafk-T470% git clone git@github.com:GH_User/a-repository.git
Cloning into 'a-repository'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 8 (delta 0), reused 8 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.

因此,这适用于存储在NEW FORMAT中的键。我的ServerFault答案中的详细步骤。

所有操作均在Xubuntu 18.04默认OpenSSH ssh-keygen上完成。

私钥将以这种方式更改。不是由于它的注释,而是由于它的format的变化。请参阅此处的比较,该比较仅针对为此比较而创建的键。

私钥比较-格式已更改

请注意,对于pub-key,我已经有效地将其断开,因此Meld可以更好地显示更改的内容:空格已通过换行符进行了更改(这会破坏格式)。

(断开)公共密钥比较,仅注释已更改


我可以证实,这个命令我RSA2重点工程ssh-keygen -f ~/.ssh/mykey -c -C 'a new comment' -o
菲利普·阿尔瓦雷斯

0

如果是关于PuTTY生成的密钥(当它说MAC失败时),那么更改注释的最佳方法可能是使用puttygen工具。

油灰

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.