Проблема Net-SSH / Capistrano: «Не удалось проанализировать PKey: нет стартовой строки» - PullRequest
0 голосов
/ 11 января 2019

В течение многих лет я успешно развертывал свое приложение Rails 3.2.13 с использованием Capistrano. Но только сегодня я столкнулся с ужасным ArgumentError: Could not parse PKey: no start line при подключении к серверу.

Из других постов, которые я понял, это на самом деле проблема с самоцветом net-ssh, который Capistrano использует для установления соединения. Очевидно, более старые версии net-ssh не совместимы с файлами ключей, созданными в более поздних версиях OpenSSH. (См., Например, здесь и здесь .)

Этот диагноз поддерживается (а) тем фактом, что я все еще могу использовать SSH на моем сервере из командной строки, и (б) следующим небольшим сеансом irb:

irb(main):006:0> require 'net/ssh'
=> true
irb(main):007:0> Net::SSH::KeyFactory.load_private_key('~/.ssh/id_rsa')
ArgumentError: Could not parse PKey: no start line

Полагаю, я недавно обновил свой файл закрытого ключа, когда изменил свой пароль, и теперь он несовместим с моей версией net-ssh (v2.7.0).

Я не могу обновить net-ssh, так как я застрял с Ruby 1.9.3.

Возможно, есть ли способ вернуться к старой / совместимой версии файла закрытого ключа? Или, может быть, какое-то другое решение?

1 Ответ

0 голосов
/ 11 января 2019

Решил, запустив:

ssh-keygen -p -m PEM

и затем, следуя инструкциям, «сбросьте» пароль для моего личного ключа.

Добавление опции -m PEM вернуло мне файл ~/.ssh/id_rsa старого стиля, который мне был нужен для совместимости с моей старой версией net-ssh.

...