ruby-on-rails-3 - Net-SSH/Capistrano 问题:“无法解析 PKey:没有起始行”
问题描述
多年来,我一直在使用 Capistrano 成功部署我的 Rails 3.2.13 应用程序。ArgumentError: Could not parse PKey: no start line
但是就在今天,我在连接到服务器时遇到了可怕的事情。
从其他帖子中,我了解到这实际上是net-ssh
宝石的一个问题,Capistrano 使用它来建立连接。显然,较旧版本net-ssh
的 OpenSSH 与较新版本的 OpenSSH 创建的密钥文件不兼容。(例如,请参见此处和此处。)
(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。
有没有办法恢复到私钥文件的旧/兼容版本?或者其他一些解决方案?
解决方案
通过运行解决它:
ssh-keygen -p -m PEM
然后按照提示“重置”我的私钥的密码。
添加该-m PEM
选项后,我恢复了~/.ssh/id_rsa
与旧版本的net-ssh
.
推荐阅读
- python - 在枕头库中,BICUBIC 不工作
- javascript - 如何将数据从 Javascript 传递到 PHP Laravel?
- laravel - 我应该为不同的用户类型设置不同的表吗
- angular - 在 Godaddy 上托管应用程序后图像未加载
- gtk - Gtk.Stack 不会更改事件回调函数中的可见子项
- xcode - 第三方框架 Audiokit 麦克风分析
- sql - 计算不同的类型
- angular - 在 mat-radio-group 上添加名称后,角度材料 mat-radio-button 默认检查不起作用
- r - 带有 ggplot 的闪亮 R 动态热图。规模和速度问题
- python - 我可以将参数的名称作为参数传递吗?