各种格式SSH 公钥和私钥之间的转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种格式SSH 公钥和私钥之间的转换相关的知识,希望对你有一定的参考价值。
参考技术A 前天给客户安装环境,没想到在生成SSH密钥上耽误很多时间。先从一个实验开始吧。
先生成密钥对,公钥为/tmp/key.pub,私钥为/tmp/key。命令行选项中 -t表示key type,-b表示key的bit数,在puttygen中也是使用这样的组合,即RSA, 2048。
这里产生的私钥默认是兼容性更好的PEM格式。如果加-o选项,则生成的是OpenSSH格式的私钥。
这里生成的PEM RSA格式的私钥,可以import到puttygen中生成putty使用的PPK格式的私钥,如下:
顺带说一下,PEM表示Privacy Enhanced Mail,PPK表示PuTTY Private Key。这两种都是私钥格式。PEM实际上是一种特定的BASE64编码。参见这里
将OpenSSH格式公钥转换为SSH2格式,即RFC 4716格式:
将SSH2 格式公钥转换为PEM:
将OpenSSH格式公钥转换为PEM格式:
私钥除了PEM格式,还有一个OpenSSH格式。如文档描述:
使用-p选项可以将PEM和OpenSSH格式互相转换。
总结一下,私钥的格式有PEM, OpenSSH和PPK 3种。公钥的格式有OpenSSH和SSH2两种。
对于私钥,PPK是putty程序用的,这种格式和其它格式的转换通过puttygen来做。puttygen只能import PEM格式的,但可以转换成openssh格式的。PEM和OpenSSH之间的转换通过ssh-keygen -p来做。
对于公钥,OpenSSH,SSH2,PEM之间通过ssh-keygen -e或-i来转换。 ~/.ssh/authorized_keys中存放的公钥是OpenSSH格式。OCI中API Signing Key使用PKCS8格式的公钥。如下:
那天在客户处出现的问题就是因为Oracle公有云(OCI)生成的私钥和私钥都是OpenSSH格式的。所以私钥无法直接导入puttygen,需要先转换为PEM格式才可导入。
————————————————
原文链接: https://blog.csdn.net/stevensxiao/article/details/109381001
以上是关于各种格式SSH 公钥和私钥之间的转换的主要内容,如果未能解决你的问题,请参考以下文章