![如何以 OpenSSH 的新密钥格式存储 RSA-4096 SSH 密钥](https://linux22.com/image/136544/%E5%A6%82%E4%BD%95%E4%BB%A5%20OpenSSH%20%E7%9A%84%E6%96%B0%E5%AF%86%E9%92%A5%E6%A0%BC%E5%BC%8F%E5%AD%98%E5%82%A8%20RSA-4096%20SSH%20%E5%AF%86%E9%92%A5.png)
我似乎无法生成 RSA-4096SSH键入OpenSSH 的使用以下命令的新密钥格式:
$ 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-4096SSH钥匙似乎是用旧的写的质子交换膜键格式而不是OpenSSH 的新的密钥格式。
注意 Ed25519SSHkey 我可以追溯更改其评论。
根据手册SSH-KEYGEN(1)
页开放SSH版本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的回答。
答案1
我认为这是交换机行为中的错误-o
以及 OpenSSH 中的文档错误。
这对我有用:
$ ssh-keygen \
-f rsa4096_key \
-t rsa \
-b 4096 \
-C 'This is a test' \
-o \
-N ''
$ grep -o "This.*" rsa4096_key.pub
This is a test
所以评论被存储在rsa4096_key.pub
文件中。由于 .pub 文件始终可以从私钥中提取,因此它也是私钥文件中的定义。
本次 SU 问答题为:如何更改 RSA 密钥 (SSH) 的注释字段?显示了一些围绕此的分析。 SF Q&A 上还有一条评论,标题为:可以更改密钥对中的电子邮件地址吗?。
主要是:
参考从 OpenSSH 6.5 开始,适用于所有密钥类型,而不仅仅是 RSA1:
ssh-keygen -f ~/.ssh/keyfilename -o -c -C "here goes your comment"
-f
: 私钥文件-o
:将私钥从 PEM 转换为新的 OpenSSH 格式-c
:更改私钥和公钥文件中的注释-C
: 评论文字