将ssh公钥转换为pem格式

时间:2013-04-19 10:41:20

标签: ruby encoding openssl openssh

我从github api获取了一个公钥,所以它的格式是ssh读取它所需的格式。

我希望将其格式化为PEM,以便我可以使用ruby的OpenSSL库来处理它,特别是我需要一个OpenSSL::PKey::RSA实例。

基本上,我想在Ruby中使用这个命令:

ssh-keygen -f testing_rsa.pub  -e -m pem

我找到了SSHKey宝石,但它似乎没有做到这一点。

有没有办法在OpenSSL或其他库中执行此操作,或者我是否需要求助于这些other答案建议并手动转换它?

1 个答案:

答案 0 :(得分:2)

require 'open3'

def key_file_in_pem_format key_file
  stdout, status = Open3::capture2('ssh-keygen', '-f', key_file, '-e', '-m', 'pem')
  raise unless status == 0
  stdout
end

这将ssh-keygen程序的输出作为字符串返回。