突然,Capistrano 开始返回一个 SSH 问题:
** [deploy:update_code] 回滚时出现异常:Capistrano::ConnectionError,连接失败:staging.myserver.com (Net::SSH::AuthenticationFailed: root) 连接失败:staging.myserver.com (Net:: SSH::AuthenticationFailed: root)
我的 deploy.rb 包含:
require 'capistrano/ext/multistage'
ssh_options[:forward_agent] = true
ssh_options[:keys] = ["myserver_rsa"]
set :stages, ["staging", "production"]
set :default_stage, "staging"
set :scm, "git"
set :application, "myapp"
set :repository, "git@bitbucket.org:project/myapp.git"
set :use_sudo, false
set :deploy_via, :remote_cache
在我的 config/deploy/staging.rb
server 'staging.myserver.com', :app, :web, :db, primary: true
set :branch, 'staging'
set :rails_env, "staging"
set :deploy_to, "/var/rails/#{application}"
set :user, "root"
set :password, "my_triple_check_password_login"
set :domain, "staging.myserver.com"
我在这里发布之前所做的测试:
尝试通过 ssh (ssh -v staging.myserver.com) 登录 => 登录成功,无需提示我的密码。(使用 myserver_rsa 密钥)
代理转发 => 在服务器和本地启用
尝试通过不带密钥的 ssh 登录:=> 提示输入密码。从 staging.rb 复制并粘贴它并完美记录。
更改服务器根密码。=> 尝试通过 ssh root@... 使用新密码登录...效果很好。但通过 capistrano,失败了。
在 IRB 中运行一个 Net SSH 脚本来登录。=> 登录并
hostname
从 bash 返回结果。
这个问题昨天突然开始了。我真的没有更多的想法:/
首先,无论是 Cap 部署配置,服务器上都没有任何变化。
谢谢!