如何在ruby中创建SSH公钥/私钥对并将它们存储在Db中

时间:2010-09-23 12:25:48

标签: ruby-on-rails ruby ssh

我正在写一个ruby on rails服务,它将通过SSH连接到各种服务器。

我想生成public / rivate键并将它们存储在数据库中。然后,用户将能够查看公钥并将其添加到服务器上的SSH密钥身份验证中。

我的服务将通过Net :: SSH联系服务器并显示相应的密钥。

我的问题是我需要API调用才能实现此目的。大多数文档都会在.ssh目录中创建密钥。

3 个答案:

答案 0 :(得分:2)

我发现了如何直接将密钥传递给Net :: SSH

基本上,您可以使用:key_data选项传递PEM格式的私钥。然后,Net :: SSH可以根据需要生成公钥。

答案 1 :(得分:0)

你不能使用ssh-keygen命令吗?我的意思是:

从网络界面

获取密码和其他参数

验证,检查等,然后:

#!/usr/bin/env ruby
$VERBOSE=true

`ssh-keygen -f ~/sshkeyfile -t rsa -C "something"  -P "something else"`

当然,改变路径更合适,并使用您想要的选项。

然后从您选择的位置阅读sshkeyfilesshkeyfile.pub 将它存储在db等中。

答案 2 :(得分:0)

这适用于在Ruby中生成私钥和公钥

require 'openssl'


key = OpenSSL::PKey::RSA.generate(2048)
key.public_key

puts key.public_key
puts key

所以我认为所需的答案是' openssl'