Как я могу создать пары открытых / закрытых ключей SSH в ruby ​​и сохранить их в БД - PullRequest
2 голосов
/ 23 сентября 2010

Я пишу сервис ruby ​​on rails, который будет подключаться к различным серверам через SSH.

Я хочу сгенерировать открытый ключ / ключ и сохранить их в базе данных. Затем пользователь сможет просмотреть открытый ключ и добавить его к аутентификации ключа SSH на своем сервере.

Служба my свяжется с серверами через Net :: SSH и предоставит соответствующие ключи.

Мои вопросы о том, какие вызовы API мне нужны для достижения этой цели. Большая часть документации предполагает, что вы будете создавать ключи в каталоге .ssh.

Ответы [ 3 ]

2 голосов
/ 24 сентября 2010

Я узнал, как напрямую передавать ключи в Net :: SSH

По сути, вы можете передать закрытый ключ формата PEM с помощью параметра: key_data.Net :: SSH может затем сгенерировать открытый ключ из этого, так как он нуждается в обоих.

0 голосов
/ 29 мая 2018

Это работает для генерации закрытых и открытых ключей в Ruby

require 'openssl'


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

puts key.public_key
puts key

Так что я думаю, что необходим ответ «openssl»

0 голосов
/ 23 сентября 2010

Не можете ли вы использовать команду ssh-keygen? Я имею в виду:

получить пароль и другие параметры из веб-интерфейса

подтвердить, проверить и т. Д., А затем:

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

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

Конечно, измените путь к чему-то более подходящему и используйте нужные параметры.

Затем прочитайте sshkeyfile и sshkeyfile.pub из выбранного вами местоположения
хранить в дБ и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...