我似乎无法使用以下命令以OpenSSH 的新密钥格式生成 RSA-4096 SSH密钥:
$ ssh-keygen \
-f rsa4096_key \
-t rsa \
-b 4096 \
-C 'This is a test' \
-o \
-N ''
在尝试更改 RSA-4096 SSH密钥的现有注释后,至少我收到以下错误消息:
$ ssh-keygen -cf rsa4096_key
Comments are only supported for keys stored in the new format (-o).
因此,即使我-o
在密钥生成期间指定了标志,RSA-4096 SSH密钥似乎也是以旧PEM密钥格式而不是OpenSSH 的新密钥格式编写的。
注意 对于 Ed25519 SSH密钥,我可以追溯更改其注释。
根据OpenSSH版本SSH-KEYGEN(1)
的手册页:OpenSSH_7.7p1
-o使 ssh-keygen 使用新的 OpenSSH 格式而不是更兼容的 PEM 格式保存私钥。新格式增强了对暴力破解密码的抵抗力,但不支持 6.5 之前的 OpenSSH 版本。Ed25519 密钥始终使用新的私钥格式。
有人有解决这个问题的方法或者可以告诉我我做错了什么吗?谢谢!
更新: @slm 提出的解决方案对我有用,尽管具有误导性的联机帮助页和令人困惑的控制台输出。基本上是命令:
$ ssh-keygen -f rsa4096_key -o -c -C 'here goes your comment'
Key now has comment 'This is a test'
The comment in your key file has been changed.
再次运行时,它证明它已将注释更改为上一个命令行中给出的注释:
$ ssh-keygen -f rsa4096_key -o -c -C 'Hello World!'
Key now has comment 'here goes your comment'
The comment in your key file has been changed.
因此我接受了@slm 的回答。
我认为这是
-o
开关行为中的一个错误,也是 OpenSSH 中的一个文档错误。这对我有用:
所以评论被存储在
rsa4096_key.pub
文件中。由于 .pub 文件总是可以从私钥中提取出来,因此它也是在私钥文件中定义的。此 SU 问答题为:如何更改 RSA 密钥 (SSH) 的注释字段?对此进行了一些分析。对此 SF Q&A 也有评论,标题为:可能更改密钥对中的电子邮件地址?.
主要是:
参考