zoukankan      html  css  js  c++  java
  • 关于pem与ppk格式的密钥的相互转换

    目前主流的密钥(或者说私钥)格式有两种:OpenSSH格式的密钥(.pem或者无后缀) 和 PuTTY格式的密钥(.ppk)

    pem好像是Privacy Enhanced Mail的缩写,以前是利用公钥加密进行邮件安全的一个协议,

    而现在PEM这个协议仅仅在使用的就是.pem这种文件格式

    ppk文件是Putty的私钥。PuTTY Private Key 的缩写。

     

    目前putty基于密钥登录,只能使用ppk格式,而其他ssh客户端,大多都只能使用通过的.pem格式

    要实现.pem与.ppk格式的相互转换,目前主要都是使用puttygen这个小程序,具体方法如下:

    Window系统下的操作:

          格式转换,都需要先导入文件,运行puttygen,点击【Conversions】菜单项中的【Import key】,导入密钥文件

    • .pem----转---->.ppk

               导入后,点击【Save private key】 ,即可生成putty默认支持.ppk格式了

    • .ppk----转---->.pem

               导入后,点击【Conversions】菜单项下的  【Export OpenSSH Key】,最后选择保存路径!

              

    Linux系统下的操作:

    Linux系统下,转换也需要安装putty软件包(由epel源提供,因此先安装epel-release),安装后包含了puttygen命令行工具

    注意:puttygen命令对于输入格式,是可以自动检测到的,也可以-t选择指定(when generating (ed25519, ecdsa, rsa, dsa, rsa1))

    • .pem----转---->.ppk
    [root@5201351 ~]# puttygen id_rsa.pem -o id_rsa.ppk       #也可以-O private指定输出ppk格式,不过putty默认也是输出ppk格式,可以省略
    • .ppk----转---->.pem
    [root@5201351 ~]# puttygen id_rsa.ppk -o id_rsa.pem -O private-openssh        #输出其他非ppk格式,必须-O指定类型,否则报错

    如果需要对.pem格式与ppk格式进行批量的转换,目前笔者能想到最好的方法就是使用puttygen命令结合for或while循环遍历处理

    关于puttygen命令可能会用到的选项帮助如下:

    [root@5201351 ~]# puttygen --help
    PuTTYgen: key generator and converter for the PuTTY tools
    Release 0.73
    Usage: puttygen ( keyfile | -t type [ -b bits ] )
                    [ -C comment ] [ -P ] [ -q ]
                    [ -o output-keyfile ] [ -O type | -l | -L | -p ]
      -t    specify key type when generating (ed25519, ecdsa, rsa, dsa, rsa1)
      -b    specify number of bits when generating key
      -C    change or specify key comment
      -P    change key passphrase
      -q    quiet: do not display progress bar
      -O    specify output type:
               private             output PuTTY private key format
               private-openssh     export OpenSSH private key
               private-openssh-new export OpenSSH private key (force new format)
               private-sshcom      export ssh.com private key
               public              RFC 4716 / ssh.com public key
               public-openssh      OpenSSH public key
               fingerprint         output the key fingerprint
      -o    specify output file
      -l    equivalent to `-O fingerprint'
      -L    equivalent to `-O public-openssh'
      -p    equivalent to `-O public'
      --old-passphrase file
            specify file containing old key passphrase
      --new-passphrase file
            specify file containing new key passphrase
      --random-device device
            specify device to read entropy from (e.g. /dev/urandom)

    尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/13055631.html

  • 相关阅读:
    CSS HACK:IE6、IE7、IE8、Firefox兼容性问题解决方案
    C# @符号的多种使用方法
    16个Javascript的Web UI库、框架及工具包
    【分享】20个很不错的UI图标集资源
    JQuery/AjaX/Javascript/DIV+CSS资源下载地址
    发个csdn泄露账户查询地址,没下数据库的童鞋来查一下自己
    【总结】CSS透明度大汇总
    C#综合揭秘——细说事务
    ASP.NET获取客户端、服务器端基础信息集合
    收集的网络上大型的开源图像处理软件代码(提供下载链接)
  • 原文地址:https://www.cnblogs.com/5201351/p/13055631.html
Copyright © 2011-2022 走看看