将 ssh-dss 密钥转换为 .pem?

Posted

技术标签:

【中文标题】将 ssh-dss 密钥转换为 .pem?【英文标题】:Convert ssh-dss key to .pem? 【发布时间】:2013-04-24 03:12:57 【问题描述】:

如何将 openssh dsa 公钥转换为 .pem 格式?

有可能吗?

我用过命令

  openssl dsa -in u015_test.pub -outform pem > u015_test.pem

但这是输出:

  read DSA key
  unable to load Private Key
  23392:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:648:Expecting: ANY PRIVATE KEY
  unable to load Key

这就是我的密钥的显示方式:

 ssh-dss AAAAB3NzaC1kc3MAAACBAMMjZ03z7hOuGYDaPmyBvuNS+LJmhYn1bWzWP8p+1/amuRPdHj68KnRDuaf8MJB3qBZ6xsu97vUjjuRDeEyFLVjsghK9TiKBsxv2Uv+fS4o0OJzP............

【问题讨论】:

【参考方案1】:

要转换 ssh 密钥,你应该使用ssh-keygen:

ssh-keygen -e -m PEM -f u015_test.pub

或者如果你想使用 openssl 的密钥:

ssh-keygen -e -m PKCS8 -f u015_test.pub

要尝试它是否有效,请使用:

ssh-keygen -e -m PKCS8 -f u015_test.pub | openssl dsa -pubin

【讨论】:

这是输出:“读取 DSA 密钥无法加载密钥 11625:error:0906D06C:PEM 例程:PEM_read_bio:no start line:pem_lib.c:647:Expecting: PUBLIC KEY” 能否请您发布密钥的外观?我不太确定你有什么样的钥匙。 奇怪,我不知道为什么这不起作用。你从哪里得到这个错误?导出时,或尝试将其与 openssl 一起使用时?

以上是关于将 ssh-dss 密钥转换为 .pem?的主要内容,如果未能解决你的问题,请参考以下文章

将Java密钥库转换为PEM格式

如何将 ECDSA 密钥转换为 PEM 格式

将 CA 签名的 JKS 密钥库转换为 PEM

将 pem 密钥转换为 ssh-rsa 格式

sh 将密钥从二进制(由生成密钥生成)转换为pem格式。适用于私钥和公钥

将 PEM RSA 密钥转换为 C# RSACryptoServiceProvider.FromXmlString 的 xml