Как использовать файл ключа PRIVATE RSA в Net :: sftp в ruby на рельсах - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь установить sh sftp-соединение с моим azure хранилищем. У меня есть файл закрытого ключа, который начинается с

private_key = '-----BEGIN RSA PRIVATE KEY-----\nMnx......'

С этим private_key я пытаюсь установить sh соединение, подобное

Net::SFTP.start('<remote-ip>', 'username', 
        :password => 'password', 
        :key_data => [ private_key ],
        keys_only: true,
        verify_host_key: :never) do |sftp|
          data = sftp.download!("/somefile.txt")
          p data

end

Когда я пытаюсь использовать этот файл ключа, Я получаю исключение типа

#<OpenSSL::PKey::PKeyError: Could not parse PKey: no start line>

Однако, когда я использовал файл ключа, который начинается с формата ниже

-----BEGIN OPENSSH PRIVATE KEY-----

, все работало нормально.

Но я хочу использовать новый закрытый ключ. Что будет не так в этом коде? Есть ли способ указать тип файла закрытого ключа, который будет использоваться?

1 Ответ

0 голосов
/ 20 января 2020

сделать это:

Перед вызовом этого действия проверьте, содержит ли переменная private_key строку -----BEGIN OPENSSH PRIVATE KEY-----. Если нет, то добавьте это к переменной private_key или вкратце приведите private_key к формату, который принимает ваш метод start.

...