SSH公钥格式


11

我有一个公钥,格式为:

---- BEGIN SSH2 PUBLIC KEY ----

Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==

---- END SSH2 PUBLIC KEY ----

通常我会看到以下格式的键:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]

我可以只复制第一个密钥到authorized_keys文件中,还是必须以某种方式修改它,使其看起来像第二个?我认为第一个是由PUTTYgen生成的,而第二个是由ssh-keygen生成的。

Answers:


16

用于ssh-keygen -i将SSH2兼容格式转换为OpenSSH兼容格式。

来自man ssh-keygen

-i此选项将以SSH2兼容的格式读取未加密的私有(或公用)密钥文件,并将OpenSSH兼容的私有(或公用)密钥输出到stdout。ssh-keygen还读取RFC 4716 SSH公共密钥文件格式。此选项允许从几种商业SSH实施中导入密钥。



4

这是完整,正确的答案:

ssh-keygen -i -m PKCS8 -f public-key.pem


1
“ RFC4716”是默认的key_format,并且-m确实是在这种情况下用于指定INPUT的格式,而不是输出,因此您是正确的。
JimNim

从技术上讲,alexus的“正确”答案不是错的,因为该答案并未说明完整的语法-仅指向应使用的主要标志,而无需在手册页中检查-i语法/用法。
JimNim

2

只需以适合以下格式的密钥重写authorized_keys

键类型键体键名

请记住,结尾的“ ==”是必需的占位符,以使密钥长度等于所需的长度。


4
尾随的“ ==”是Base64填充
2012年

我怎么知道它是RSA还是DSA?
汉斯
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.