Capistrano登录Net :: SSH失败

突然,Capistrano开始回复SSH问题:

回滚时出现[deploy:update_code]exception: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" 

我在发布之前进行的测试:

  1. 尝试通过ssh登录(ssh -v staging.myserver.com)=>在没有提示密码的情况下成功登录。 (使用myserver_rsa键)

  2. Agent Forward =>在服务器和本地启用

  3. 尝试通过ssh登录而不使用密钥:=>提示输入密码。 从staging.rb复制并粘贴它并完美记录。

  4. 更改服务器root密码。 =>尝试通过ssh root @使用新密码登录… …工作得很好。 但是通过卡皮斯特拉诺,失败了。

  5. 在IRB中运行一个Net SSH脚本来登录。 =>登录并从bash返回hostname结果。

这个问题突然从昨天开始。 我真的没有更多的想法:/

首先,没有任何改变在服务器或Cap部署配置。

谢谢!

我发现!

在我的/etc/ssh_config根目录中,我有:

 Host * SendEnv LANG LC_* XAuthLocation /opt/X11/bin/xauth ForwardAgent yes PasswordAuthentication yes 

我需要在我的暂存环境中创建一个部分:

  Host staging.myserver.com IdentityFile /Users/hlegius/.ssh/myserver_rsa ForwardAgent yes RSAAuthentication no PasswordAuthentication no 

并编辑我的config/deploy.rb以添加: default_run_options[:pty] = true

Aaaaaaaa和它的作品!

此错误是由于身份validation失败引起的。 Capistrano无法使用给定的用户名和密码连接到部署服务器。 我已经完成了服务器的部署,现在我正在部署到新服务器。 然后我收到了这个错误。

它促使我提供新服务器的密码。 我输入了新的服务器密码。 但它显示了这个错误。

我在这里更改了域名

 set :domain, "my-new-ip-or-domain" => my new server domain 

但是忘了在deploy.rb中更改用户名

 set :user, "my-new-username" 

提供正确的用户名和密码后,它完美无缺!