Spa*_*lex 52 ruby deployment capistrano ruby-on-rails
我已经成功地使用了capistrano一段时间,并且在每个项目中我突然失去了部署能力.
环境:
我没有使用rsa_keys或任何我想要capistrano来提示用户和密码.突然它决定不要求密码,但确实要求用户.然后它回滚并给我以下错误.
[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)
connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)
Run Code Online (Sandbox Code Playgroud)
这发生在我的个人笔记本电脑和我的iMac上.它部署到两个不同的服务器(两个Linux)时发生
我在这里完全不知所措.有任何想法吗?
Spa*_*lex 94
弄清楚了!显然这个问题与net-sshgem有关.我最近安装了2.8.0版本,对我的开发环境进行了一些更新,这是原因.
我不确定它为什么失败,但gem uninstall net-ssh -v 2.8.0<为我修好了.
如果有人真的知道为什么这是一个问题,或者我如何用更新的版本纠正这个问题net-ssh我会有兴趣听到它.
cre*_*ist 18
由于宝石依赖性,答案可能会破坏您的rails应用程序.
问题是net-ssh正如Sparkmasterflex正确回答的那样,但是这将使得capistrano工作正常,它可能会打破你的rails应用程序:
这些步骤为我修复了capistrano和rails ...
gem 'net-ssh', '2.7.0'bundle update net-sshbundle(只是为了确保一切正常gem uninstall net-ssh -v 2.8.0如果您是rails用户,您现在应该能够同时运行rails服务器和capistrano.
Sco*_*don 11
我不要求降级一种变通方法net-ssh,每一个评论的链接是扎克·利普顿公布.将此代码放在config/deploy.rb:
set :ssh_options, {
config: false
#Other options...
}
Run Code Online (Sandbox Code Playgroud)
在我这样做之后,我又遇到了另一个错误,Error reading response length from authentication socket.在这里找到了解决方案.在Bash提示符下执行以下命令:
$ eval $(ssh-agent)
$ ssh-add
Run Code Online (Sandbox Code Playgroud)
小智 8
将net-ssh版本升级到2.8.1将解决问题.他们在2014年2月19日发布了一个版本,修复了这个问题和其他问题.
只需将其粘贴到您的Gemfile上:
gem'net-ssh','〜> 2.8.1',:git =>" https://github.com/net-ssh/net-ssh "
运行捆绑安装
使用capistrano Net :: SSH :: AuthenticationFailed进行部署时遇到了同样的问题:用户部署者@ IP的身份验证失败
ssh-copy-id deployer @ ip
这会将您的密钥添加到服务器,您无需密码即可登录.
| 归档时间: |
|
| 查看次数: |
34436 次 |
| 最近记录: |