共计 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
正文完
请博主喝杯咖啡吧!