ssh-keygen生成rsa公钥问题

6,396次阅读
没有评论

共计 1525 个字符,预计需要花费 4 分钟才能阅读完成。

最近在配置一下ssh的公私钥,因为系统需要制定私钥的开头就是begin rsa 的方式,如果是openssh 就不支持,在使用网上的教程直接使用gitbash 然后ssh-keygen但是结果生成的私钥中都是指定了openssh,虽然你使用 -t rsa 的方式,如果希望出现begin rsa 其实是要按照旧版加密协议来生成,所以在使用ssh-keygen的时候加上 -m PEM参数即可,操作相关如下所示:

$ ssh-keygen -m PEM -t rsa -b 4096
Generating public/private rsa key pair. 
Enter file in which to save the key (/c/Users/¥¥¥/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):
 Enter same passphrase again: 
Your identification has been saved in /c/Users/¥¥¥/.ssh/id_rsa.
 Your public key has been saved in /c/Users/¥¥¥/.ssh/id_rsa.pub.
 The key fingerprint is: 
SHA256:D+OToR8IhQ+xh7/lGDhx6WhHktVR8mqVgDnI0+5F4Ew 
¥¥¥@¥¥¥ 
The key's randomart image is: 
+---[RSA 4096]----+ | ..oE=+o. | 
| +@=.o+ . | | OoOo + | | #. .o | 
| ..S | | . +.@ * | | = * . |
 | . o | | . | 
+----[SHA256]-----+

捣鼓openssh直接生成

OpenSSL公钥和OpenSSH公钥格式转换

OpenSSL生成的公钥格式和OpenSSH公钥格式不一致,把OpenSSL生成的公钥用于配置SSH连接,验证会失败。

OpenSSL公钥(PEM)格式为:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk
O3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2
eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1
QWPdspTBKcxeFbccDwIDAQAB
-----END PUBLIC KEY-----

OpenSSH公钥格式为:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
  • 从私钥重新生成OpenSSH格式公钥

ssh-keygen -y -f priKey.pem > sshPubkey.pub

  • 将OpenSSL格式公钥转换成OpenSSH格式

ssh-keygen -i -m PKCS8 -f sslPubKey.pub 〉 sshPubKey.pub #-m支持 PEM,PKCS8,RFC4716

  • 将OpenSSH格式公钥转换成OpenSSL格式公钥

ssh-keygen -e -m PEM -f sshPubKey.pub >sslPubKey.pub #-m支持 PEM,PKCS8,RFC4716

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2019-09-11发表,共计1525字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码