I'm currently using Capistrano 1.4.1 and I upgraded net-ssh to version 1.1.0 this morning. I'm also using Jim Morris's SCM module for local SVN access. When I try to deploy, my deployment blows up when trying to connect to my remote server with the following output (I've replace my fingerprint and server name to protect the innocent):
* querying latest revision... * local executing: svn export -q -r15800 svn+ssh://dev/vol2/svn/ fsg/cap-one/branches/PR3 /tmp/CAP_TEMP_1178037278.66282 * local creating tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz * sending tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz to remote / tmp/CAP_TEMP_1178037278.66282.tar.gz servers: ["myserver"] *** [update_code] transaction: rollback * [update_code] rolling back * executing "rm -rf /var/www/www.myserver.com/releases/ 20070501163438" servers: ["myserver"] ** [update_code] exception while rolling back: Net::SSH::HostKeyMismatch, fingerprint my_fingerprint does not match for myserver /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ssh/host-key- verifier.rb:47:in `process_cache_miss': fingerprint my_fingerprint does not match for myserver (Net::SSH::HostKeyMismatch) from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/host-key-verifier.rb:38:in `verify' from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/lenient-host-key-verifier.rb:9:in `verify' from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/transport/kex/dh.rb:165:in `verify_server_key' from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/transport/kex/dh.rb:232:in `exchange_keys' from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/ lifecycle/proxy.rb:60:in `__send__' from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/needle/ lifecycle/proxy.rb:60:in `method_missing' from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/transport/session.rb:182:in `exchange_keys' from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ ssh/transport/session.rb:143:in `kexinit' ... 57 levels... from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/ capistrano/cli.rb:12:in `execute!' from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/bin/ cap:11 from /opt/local/bin/cap:18:in `load' from /opt/local/bin/cap:18
I rolled back my net-ssh version installed to 1.0.10 and everything works fine. There weren't any warnings I noticed about version incompatibilities on the announcement page. Has anyone else encountered this?
> I'm currently using Capistrano 1.4.1 and I upgraded net-ssh to version > 1.1.0 this morning. I'm also using Jim Morris's SCM module for local > SVN access. When I try to deploy, my deployment blows up when trying > to connect to my remote server with the following output (I've replace > my fingerprint and server name to protect the innocent):
> * querying latest revision... > * local executing: svn export -q -r15800 svn+ssh://dev/vol2/svn/ > fsg/cap-one/branches/PR3 /tmp/CAP_TEMP_1178037278.66282 > * local creating tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz > * sending tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz to > remote / > tmp/CAP_TEMP_1178037278.66282.tar.gz > servers: ["myserver"] > *** [update_code] transaction: rollback > * [update_code] rolling back > * executing "rm -rf /var/www/www.myserver.com/releases/ > 20070501163438" > servers: ["myserver"] > ** [update_code] exception while rolling back: > Net::SSH::HostKeyMismatch, fingerprint my_fingerprint does not match > for myserver > /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ssh/host-key- > verifier.rb:47:in `process_cache_miss': fingerprint my_fingerprint > does not match for myserver (Net::SSH::HostKeyMismatch) > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/host-key-verifier.rb:38:in `verify' > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/lenient-host-key-verifier.rb:9:in `verify' > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/transport/kex/dh.rb:165:in `verify_server_key' > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/transport/kex/dh.rb:232:in `exchange_keys' > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > needle/ > lifecycle/proxy.rb:60:in `__send__' > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > needle/ > lifecycle/proxy.rb:60:in `method_missing' > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/transport/session.rb:182:in `exchange_keys' > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > ssh/transport/session.rb:143:in `kexinit' > ... 57 levels... > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/ > capistrano/cli.rb:12:in `execute!' > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/bin/ > cap:11 > from /opt/local/bin/cap:18:in `load' > from /opt/local/bin/cap:18
> I rolled back my net-ssh version installed to 1.0.10 and everything > works fine. There weren't any warnings I noticed about version > incompatibilities on the announcement page. Has anyone else > encountered this?
I was getting this earlier, and I don't get it through command line ssh. In my case, I connect to multiple servers through one ip, with different ports. ssh by default complains about mismatched host keys with this configuration, until I persuaded it that they really were different servers by setting HostKeyAlias on each server in .ssh/ config I wonder if the same problem is causing problems in net-ssh...
On May 1, 6:17 pm, Jamis Buck <j...@37signals.com> wrote:
> If you try to use the command-line ssh client to connect to > "myserver", do you get any hostkey mismatch warnings?
> - Jamis
> On May 1, 2007, at 11:12 AM, wsel...@gmail.com wrote:
> > I'm currently using Capistrano 1.4.1 and I upgraded net-ssh to version > > 1.1.0 this morning. I'm also using Jim Morris's SCM module for local > > SVN access. When I try to deploy, my deployment blows up when trying > > to connect to my remote server with the following output (I've replace > > my fingerprint and server name to protect the innocent):
> > * querying latest revision... > > * local executing: svn export -q -r15800 svn+ssh://dev/vol2/svn/ > > fsg/cap-one/branches/PR3 /tmp/CAP_TEMP_1178037278.66282 > > * local creating tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz > > * sending tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz to > > remote / > > tmp/CAP_TEMP_1178037278.66282.tar.gz > > servers: ["myserver"] > > *** [update_code] transaction: rollback > > * [update_code] rolling back > > * executing "rm -rf /var/www/www.myserver.com/releases/ > > 20070501163438" > > servers: ["myserver"] > > ** [update_code] exception while rolling back: > > Net::SSH::HostKeyMismatch, fingerprint my_fingerprint does not match > > for myserver > > /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ssh/host-key- > > verifier.rb:47:in `process_cache_miss': fingerprint my_fingerprint > > does not match for myserver (Net::SSH::HostKeyMismatch) > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/host-key-verifier.rb:38:in `verify' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/lenient-host-key-verifier.rb:9:in `verify' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/kex/dh.rb:165:in `verify_server_key' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/kex/dh.rb:232:in `exchange_keys' > > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > > needle/ > > lifecycle/proxy.rb:60:in `__send__' > > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > > needle/ > > lifecycle/proxy.rb:60:in `method_missing' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/session.rb:182:in `exchange_keys' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/session.rb:143:in `kexinit' > > ... 57 levels... > > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/ > > capistrano/cli.rb:12:in `execute!' > > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/bin/ > > cap:11 > > from /opt/local/bin/cap:18:in `load' > > from /opt/local/bin/cap:18
> > I rolled back my net-ssh version installed to 1.0.10 and everything > > works fine. There weren't any warnings I noticed about version > > incompatibilities on the announcement page. Has anyone else > > encountered this?
Can someone with Windows networking chops take a look at that and see if they can figure out why Net::SSH is choking? Otherwise, I'm just going to add a caveat saying Windows users are out of luck and should not upgrade.
For what it's worth, I'm seeing the same error on OS X with a pretty fresh set of gems. The command line ssh works fine, and net-ssh 1.0.10 doesn't complain. The fingerprint that net-ssh 1.1.0 sees is in fact different than the one that the command line ssh (OpenSSH_4.5p1) sees.
On May 1, 12:17 pm, Jamis Buck <j...@37signals.com> wrote:
> If you try to use the command-line ssh client to connect to > "myserver", do you get any hostkey mismatch warnings?
> - Jamis
> On May 1, 2007, at 11:12 AM, wsel...@gmail.com wrote:
> > I'm currently using Capistrano 1.4.1 and I upgraded net-ssh to version > > 1.1.0 this morning. I'm also using Jim Morris's SCM module for local > > SVN access. When I try to deploy, my deployment blows up when trying > > to connect to my remote server with the following output (I've replace > > my fingerprint and server name to protect the innocent):
> > * querying latest revision... > > * local executing: svn export -q -r15800 svn+ssh://dev/vol2/svn/ > > fsg/cap-one/branches/PR3 /tmp/CAP_TEMP_1178037278.66282 > > * local creating tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz > > * sending tar file: /tmp/CAP_TEMP_1178037278.66282.tar.gz to > > remote / > > tmp/CAP_TEMP_1178037278.66282.tar.gz > > servers: ["myserver"] > > *** [update_code] transaction: rollback > > * [update_code] rolling back > > * executing "rm -rf /var/www/www.myserver.com/releases/ > > 20070501163438" > > servers: ["myserver"] > > ** [update_code] exception while rolling back: > > Net::SSH::HostKeyMismatch, fingerprint my_fingerprint does not match > > for myserver > > /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ssh/host-key- > > verifier.rb:47:in `process_cache_miss': fingerprint my_fingerprint > > does not match for myserver (Net::SSH::HostKeyMismatch) > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/host-key-verifier.rb:38:in `verify' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/lenient-host-key-verifier.rb:9:in `verify' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/kex/dh.rb:165:in `verify_server_key' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/kex/dh.rb:232:in `exchange_keys' > > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > > needle/ > > lifecycle/proxy.rb:60:in `__send__' > > from /opt/local/lib/ruby/gems/1.8/gems/needle-1.3.0/lib/ > > needle/ > > lifecycle/proxy.rb:60:in `method_missing' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/session.rb:182:in `exchange_keys' > > from /opt/local/lib/ruby/gems/1.8/gems/net-ssh-1.1.0/lib/net/ > > ssh/transport/session.rb:143:in `kexinit' > > ... 57 levels... > > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/lib/ > > capistrano/cli.rb:12:in `execute!' > > from /opt/local/lib/ruby/gems/1.8/gems/capistrano-1.4.1/bin/ > > cap:11 > > from /opt/local/bin/cap:18:in `load' > > from /opt/local/bin/cap:18
> > I rolled back my net-ssh version installed to 1.0.10 and everything > > works fine. There weren't any warnings I noticed about version > > incompatibilities on the announcement page. Has anyone else > > encountered this?
Adding "ssh_options[:paranoid] = false" does solve the problem. Looking through the 1.0.10 docs, it looks like no hostkey verification was performed, so this option will set 1.1.0 to behave as it was before.
Command-line ssh into the server works fine as it always has, so I'm still not clear on why Net::SSH is throwing Net::SSH::HostKeyMismatch.
On May 1, 5:28 pm, Ed Wagner <wagner...@gmail.com> wrote:
> For what it's worth, I'm seeing the same error on OS X with a pretty > fresh set of gems. The command line ssh works fine, and net-ssh 1.0.10 > doesn't complain. The fingerprint that net-ssh 1.1.0 sees is in fact > different than the one that the command line ssh (OpenSSH_4.5p1) sees.
I've not tested this in capistrano or even Net::SSH (though I will later, on OSX), but it should help.
I suspect the reason we don't see this everywhere is that it depends on the combination of IPv6 support in your kernel, in your resolver and in your ruby build.
Chris.
On May 1, 10:01 pm, Jamis Buck <jamis.b...@gmail.com> wrote:
> Can someone with Windows networking chops take a look at that and see > if they can figure out why Net::SSH is choking? Otherwise, I'm just > going to add a caveat saying Windows users are out of luck and should > not upgrade.
> - Jamis
> On May 1, 2007, at 2:55 PM, LarryK wrote:
> > Yes, I also had a problem with net-ssh 1.1.0
> > Error received on a winXP box with current capistrano and other gems > > (fresh install)
> > When doing cap setup:
> > getnameinfo: address family for hostname not supported. (SocketError) > > (see longer log below)
> > Moving to older net-ssh gem ver 1.0.10 > > solved the problem.
I found this thread by dropping the error message into Google. I'm having the same problem on Linux (CentOS). Setting ssh_options[:paranoid] = false works for me as well.
My command-line ssh works fine currently, but errors like this do happen when hosts move; fixing them usually involves editing the ~/.ssh/known_hosts file. Might something like that work here? Where does the net-ssh host key cache live?
> I found this thread by dropping the error message into Google. I'm > having the same problem on Linux (CentOS). Setting > ssh_options[:paranoid] = false works for me as well.
> My command-line ssh works fine currently, but errors like this do > happen when hosts move; fixing them usually involves editing the > ~/.ssh/known_hosts file. Might something like that work here? Where > does the net-ssh host key cache live?
It uses the same known_hosts file as the OpenSSH command-line client (~/.ssh/known_hosts).