OpenSSH私钥BEGIN OPENSSH PRIVATE KEY与BEGIN RSA PRIVATE KEY转换方式。

比如Git使用时已经生成了openssh格式的密钥,但其他系统需要用你的私钥时,发现格式不对,恼火!

关键字

  • OpenSSH
  • BEGIN OPENSSH PRIVATE KEY
  • BEGIN RSA PRIVATE KEY
  • OPENSSH PRIVATE KEY
  • RSA PRIVATE KEY
  • ssh-keygen
  • puttygen

一、简单对比

ssh-keygen -t rsa 生成ssh,默认是以新的格式生成,与OpenSSH1有关,高版本默认OPENSSH格式,不同的加密算法2

OPENSSH加密算法

-----BEGIN OPENSSH PRIVATE KEY-----
xxxxxxxxxxx
-----END OPENSSH PRIVATE KEY-----

RSA加密算法

-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxx
-----END RSA PRIVATE KEY-----

二、如何生成RSA格式加密文件

ssh-keygen指定格式

执行以下命令,指定格式为PEM,即-m PEM:

loongshawn@xxx /usr/bin$ssh-keygen -m PEM -t rsa -b 4096 -f /home/loongshawn/.ssh/demo

执行结果如下:

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/loongshawn/.ssh/demo
Your public key has been saved in /home/loongshawn/.ssh/demo.pub
The key fingerprint is:
SHA256:xxxx loongshawn@xxx
The key's randomart image is:
+---[RSA 4096]----+
|       . + d =   |
|          ..+ .  |
+----[SHA256]-----+

进入生成加密密钥的文件夹,找到加密文件,查看格式:

loongshawn@xxx ~/.ssh$cat demo
-----BEGIN RSA PRIVATE KEY-----
DXGGHTRFFDFAsDmHEcSRdAIj0kjdgu65sggsx4dPWaM0grptdn
xxx
xxx
xxx

关于ssh-kengen3后面的参数说明:

  • -m: 参数指定密钥的格式,PEM(也就是RSA格式)是之前使用的旧格式
  • -b:指定密钥长度;
  • -e:读取openssh的私钥或者公钥文件;
  • -C:添加注释;
  • -f:指定用来保存密钥的文件名;
  • -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
  • -l:显示公钥文件的指纹数据;
  • -N:提供一个新密语;
  • -P:提供(旧)密语;
  • -q:静默模式;
  • -t:指定要创建的密钥类型

puttygen工具转换

工具下载地址:https://www.puttygen.com/ ,有Linux、Mac、Windows版本,按需下载,安装方式自行百度或Google。

以Linux版本为例说明。

loongshawn@xxx /home/develop/puttygen#./puttygen /home/xxxx/.ssh/id_rsa -o loongshawn.ppk
loongshawn@xxx /home/develop/puttygen#ll
-rw-------. 1 root               root                      1900 1月  01 21:21 loongshawn.ppk
loongshawn@xxx /home/develop/puttygen#./puttygen loongshawn.ppk -O private-openssh -o loongshanw_id_rsa
loongshawn@xxx /home/develop/puttygen#ll
总用量 3952
-rw-------. 1 root               root                      1900 1月  01 21:21 loongshawn.ppk
-rw-------. 1 root               root                      1900 1月  01 21:25 loongshanw_id_rsa
loongshawn@xxx /home/develop/puttygen#cat loongshanw_id_rsa
-----BEGIN RSA PRIVATE KEY-----
HMGRG5AIBAAKCAYEA5yaDVP9DltF1XGthgdgdjgggweEHEeqzvwHg6AVvS8XREM
0ccvvshahkahknvhrGGGHjJKKKNIwvTHazjB59pNX/RyCpjZIIk5I4cxkyHsnBo
xxx
xxx
xxx
  • 第一步:生成ppk文件,puttygen /home/xxxx/.ssh/id_rsa(源文件) -o loongshawn.ppk(中间文件)
  • 第二步:转换为rsa-pem格式转换,puttygen loongshawn.ppk(中间文件) -O private-openssh -o loongshanw_id_rsa(目标文件)

日常中若已经生成了openssh的key, 也不便删除从新生成rsa的key,可以使用本方式进行格式转换。若文中有不对指出,望不吝指出,谢谢!


  1. What is OpenSSH? ↩︎

  2. SSH keys (简体中文) ↩︎

  3. ssh-keygen 维基百科 ↩︎

OpenSSH私钥BEGIN OPENSSH PRIVATE KEY与BEGIN RSA PRIVATE KEY格式转换方式相关推荐

  1. ras私钥c#转java_C#和JAVA的RSA密钥、公钥转换

    C#的秘钥跟JAVA的密钥区别 RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1.P ...

  2. Window下git生成SSH Key以及格式转换

    1.确保已经安装了git工具. 2.在鼠标右键中选择"Git Bash Here"打开命令窗口. 3.输入命令"cd ~/.ssh/",进入到.ssh文件夹 c ...

  3. RSA密钥BEGIN CERTIFICATE、BEGIN RSA PRIVATE KEY和BEGIN PRIVATE KEY的区别

    最近在用RSA做签名校验,遇到个坑,对方给的RSA密钥一直不能解析成PublicKey对象, 他们那边使用PHP可以直接使用,我这边是用java代码却用不了,百度相关的资料也很少, 后来才发现是RSA ...

  4. Go-加密学(六) - BEGIN CERTIFICATE、BEGIN RSA PRIVATE KEY和BEGIN PRIVATE KEY的区别

    目录 1.1.-----BEGIN CERTIFICATE-----格式密钥: 1.2.-----BEGIN RSA PRIVATE KEY-----格式: 1.3.-----BEGIN PRIVAT ...

  5. php 公钥格式转换,如何把OpenSSH公钥转换成OpenSSL格式

    <如何把OpenSSH公钥转换成OpenSSL格式>要点: 本文介绍了如何把OpenSSH公钥转换成OpenSSL格式,希望对您有用.如果有疑问,可以联系我们. 首先看看OpenSSL工具 ...

  6. centos 6.7 openssh 升级到openssh 7.1p

    openssh 升级主要解决: OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具.该工具是SSH协议的开源实现,支持对所有的 ...

  7. CentOS openssh升级到openssh可用

    http://blog.csdn.net/levy_cui/article/details/53100315 levy_cui (花名:白起) 科技改变世界,技术改变人生. 目录视图 摘要视图 订阅 ...

  8. python脚本 通过rsa private key 生成 publickey

    说明:蓝色=命令名称 浅绿=命令参数 浅蓝=选项 紫色=目录 系统环境:CentOS  5.5 x86_64 python版本:Python 2.7.3 参考paramiko和pycrypto官方文档 ...

  9. openssh编译 linux,openssh 的编译安装

    为了提升ssh的安全性,更新openssh也是很重要的. 下面开始编译安装openssh. openssh的官网:可以在这里下载最新的openssh 来安装http://www.openssh.com ...

  10. SSH私钥新格式转换

    ssh-keygen生成的密钥都变成以-----BEGIN OPENSSH PRIVATE KEY-----开头的字符串,导致finalshell无法使用ssh证书进行登录. 这里使用PuTTY对ss ...

最新文章

  1. 编译器架构Compiler Architecture(下)
  2. TSNE 附有codechina代码
  3. 23种设计模式C++源码与UML实现--桥接模式
  4. MPlayer1.1.1移植记录
  5. Linux+Docker+腾讯云/阿里云服务器 安装MySQL相关命令整理
  6. 云联惠认证时间_云联惠强制关闭真正原因是什么?
  7. C++ 创建快捷方式的最简单方法
  8. HTML 5 canvas 基本语法
  9. ctk 组件创建 ui_创建可重复使用的UI组件的提示和技巧
  10. 变通实现微服务的per request以提高IO效率(三)
  11. Moon一个无视Linq,无视实体类的设计思路.(不要错过,看了之后, 让我们从此以后不再羡慕linq to entiy!)...
  12. 【气动学】基于matlab导弹拦截计算方法【含Matlab源码 982期】
  13. typescript的类型转化
  14. 不再因BT吃官司 Magnet能否将BT漂白?
  15. 苏大计算机考研专业课,苏州大学软件工程考研初试科目考什么?
  16. 男人,得有足够征服女人的本钱
  17. 后端程序员必会:并发情况下redis-lua保证原子操作
  18. CH552-HID 键盘 鼠标
  19. 2dlda人脸识别 matlab,利用2DPCA和2DLDA在ORL人脸数据库上做的人脸识别实验
  20. 无驱、代码自动植入:新一代软件保护锁——圣天诺LDK-HL

热门文章

  1. 2018网易互娱笔试题-手势锁
  2. OMNeT 例程 Tictoc7 学习笔记
  3. off-by-one error
  4. python图形编程复选按钮和单选按钮详细说明_python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例...
  5. MYSQL存储过程详解(创建、变量的定义、异常、错误输出、游标、调试)
  6. 淘宝购买win10激活码流程
  7. 5G到底有多快?和4G相比的直接数据给你更直观感受
  8. 中国医科大学2021年12月《医学遗传学》作业考核试题
  9. ps删除图片中的文字
  10. Word导出pdf时Origin图片出现重影(重叠)