Net-SSH/Capistrano 问题:"Could not parse PKey: no start line"

Net-SSH/Capistrano problem: "Could not parse PKey: no start line"

多年来,我一直在使用 Capist运行o 成功部署我的 Rails 3.2.13 应用程序。但是就在今天,我 运行 在连接到服务器时进入了可怕的 ArgumentError: Could not parse PKey: no start line

从其他帖子我了解到,这实际上是 net-ssh gem 的一个问题,Capist运行o 用来建立连接。显然,旧版本的 net-ssh 与更新版本的 OpenSSH 创建的密钥文件不兼容。 (例如,参见 here and here。)

此诊断得到以下支持:(a) 我仍然可以从命令行通过 SSH 连接到我的服务器,以及 (b) 以下 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.

是否有办法恢复到私钥文件的 old/compatible 版本?或者其他一些解决方案?

由 运行 解决:

ssh-keygen -p -m PEM

然后按照提示"reset"我的私钥密码。

添加 -m PEM 选项让我恢复了旧式 ~/.ssh/id_rsa 文件,我需要它与我的旧版本 net-ssh 兼容。