Reputation: 1847
I've been using capistrano successfully for a while now and all of a sudden in every project I've lost the ability to deploy.
Environment:
I'm not using rsa_keys or anything I want capistrano to prompt for user and password. Suddenly it has decided not to ask for a password, but does ask for user. Then it rolls back and gives me the following error.
[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user [email protected])
connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user [email protected])
This has occurred on my personal laptop and my iMac at work. It occurs when deploying to two different servers (both linux)
I'm completely at a loss here. Any ideas?
Upvotes: 54
Views: 36591
Reputation: 665
First try to connect to your server with certificate (file.pem) with this command:
ssh -i "file.pem" user@yourServerIp
Then try to run cap production deploy. It solved error for me. I think it is because time limit for certificate expired.
Upvotes: 1
Reputation: 1525
If all the above solutions doesn't work,please restart your system as you might be facing the issue due to net-ssh host connections.when you restart and enter the deployment command ,it will ask to add the identity to known hosts.
Upvotes: 0
Reputation: 829
set :ssh_options, {
verbose: :debug
}
... helps a lot!
I had an issue that I generated my public and private keys with puttygen
and exported private key as OpenSSH with name <somename>.id_rsa
. An then saved public key with name <somename>.id_rsa.pub
.
( ! ) The public key puttygen saves is in RFC 4716 format not PEM. Use public
suffix instead of pub
for public key file-
Upvotes: 3
Reputation: 1847
Figured it out! Apparently this issue was with net-ssh
gem. I had version 2.8.0 installed recently with some updates to my development environment and was the cause.
I'm not sure why it was failing, but gem uninstall net-ssh -v 2.8.0<
fixed it for me.
If anyone actually knows why this was an issue or how I can correct this issue with the newer version of net-ssh
I'd be interested to hear it.
Upvotes: 95
Reputation: 10217
I have a workaround that doesn't require downgrading net-ssh
, per a comment at the link that Zach Lipton posted. Place this code in config/deploy.rb
:
set :ssh_options, {
config: false
#Other options...
}
After I did that, I got another error, Error reading response length from authentication socket.
Found the solution to that here. Execute these commands at your Bash prompt:
$ eval $(ssh-agent)
$ ssh-add
Upvotes: 12
Reputation: 1462
The answer may break your rails app due to gem dependancies.
The issue is with net-ssh as was correctly answered by Sparkmasterflex, however whilst this will get capistrano working ok it may break your rails app:
These steps fixed both capistrano and rails for me ...
gem 'net-ssh', '2.7.0'
bundle update net-ssh
bundle
(just to be sure everything is working ok'gem uninstall net-ssh -v 2.8.0
If you are a rails user you should now be able to run both the rails server and capistrano.
Upvotes: 18
Reputation: 6786
This snippet works for me:
group :development do
#.....
gem 'capistrano', "~> 2.15"
gem "net-ssh", "~> 2.7.0"
#.....
end
Upvotes: 1
Reputation: 943
I had the same problem while deploying using capistrano Net::SSH::AuthenticationFailed: Authentication failed for user deployer@IP
ssh-copy-id deployer@ip
This will add your keys to server and you can login without password.
Upvotes: 8
Reputation: 81
Upgrading your net-ssh version to 2.8.1 will solve the problem. They released a version bump in 19th february 2014 that fix this and other problems.
Just paste this on your Gemfile:
gem 'net-ssh', '~> 2.8.1', :git => "https://github.com/net-ssh/net-ssh"
Run bundle install
Upvotes: 8