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

标签 ruby-on-rails-3 ssh capistrano openssh net-ssh

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

我从其他帖子中了解到,这实际上是 net-ssh 的问题。 gem ,Capistrano 使用它来建立连接。显然是 net-ssh 的旧版本与较新版本的 OpenSSH 创建的 key 文件不兼容。 (例如,参见 herehere。)

这个诊断得到以下支持:(a)我仍然可以从命令行通过 SSH 连接到我的服务器,以及(b)下面的小 irb session :

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。

有没有办法恢复到旧的/兼容版本的私钥文件?或者其他一些解决方案?

最佳答案

通过运行解决它:

ssh-keygen -p -m PEM

然后按照提示“重置”我的私钥的密码。

添加 -m PEM选项给了我旧式 ~/.ssh/id_rsa与旧版本 net-ssh 兼容所需的文件.

关于ruby-on-rails-3 - Net-SSH/Capistrano 问题 : "Could not parse PKey: no start line",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54150803/

相关文章:

mysql - 以 Ruby on Rails 3 中 2 个表的形式显示数据

mysql - 如何检查 Rails 3.2 是否可以连接到 MySQL?

java - 使用jumphost进行Eclipse远程调试

linux - 运行 SSH 命令并从 WinSCP 退出而不中断命令

ruby-on-rails - 将 Rails 引擎安装到生产环境中的多个应用程序的最佳实践

ruby-on-rails-3 - Assets 未在 Rails 应用程序的生产中加载

ruby-on-rails-3 - 为 Devise 的用户模型定义 FactoryGirl 失败

ruby-on-rails - 我如何在 Rails 3 中处理来自 Ajax 请求的响应?

docker - 如何使用 ssh 代理在 gitlab ci 中运行部署作业?

ubuntu - 在 Ubuntu 上安装 capistrano