我正在写一个ruby on rails服务,它将通过SSH连接到各种服务器。
我想生成public / rivate键并将它们存储在数据库中。然后,用户将能够查看公钥并将其添加到服务器上的SSH密钥身份验证中。
我的服务将通过Net :: SSH联系服务器并显示相应的密钥。
我的问题是我需要API调用才能实现此目的。大多数文档都会在.ssh目录中创建密钥。
答案 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"`
当然,改变路径更合适,并使用您想要的选项。
然后从您选择的位置阅读sshkeyfile
和sshkeyfile.pub
将它存储在db等中。
答案 2 :(得分:0)
这适用于在Ruby中生成私钥和公钥
require 'openssl'
key = OpenSSL::PKey::RSA.generate(2048)
key.public_key
puts key.public_key
puts key
所以我认为所需的答案是' openssl'