All of a sudden (read: without changing any parameters) my netbsd virtualmachine started acting oddly. The symptoms concern ssh tunneling.
From my laptop I launch:
$ ssh -L 7000:localhost:7000 user@host -N -v
Then, in another shell:
$ irssi -c localhost -p 7000
The ssh debug says:
debug1: Connection to port 7000 forwarding to localhost port 7000 requested.
debug1: channel 2: new [direct-tcpip]
channel 2: open failed: connect failed: Connection refused
debug1: channel 2: free: direct-tcpip: listening port 7000 for localhost port 7000, connect from 127.0.0.1 port 53954, nchannels 3
I tried also with localhost:80 to connect to the (remote) web server, with identical results.
The remote host runs NetBSD:
bash-4.2# uname -a
NetBSD host 5.1_STABLE NetBSD 5.1_STABLE (XEN3PAE_DOMU) #6: Fri Nov 4 16:56:31 MET 2011 root@youll-thank-me-later:/m/obj/m/src/sys/arch/i386/compile/XEN3PAE_DOMU i386
I am a bit lost. I tried running tcpdump
on the remote host, and I spotted these 'bad chksum':
09:25:55.823849 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 67, bad cksum 0 (->3cb3)!) 127.0.0.1.54381 > 127.0.0.1.7000: P, cksum 0xfe37 (incorrect (-> 0xa801), 1622402406:1622402421(15) ack 1635127887 win 4096 <nop,nop,timestamp 5002727 5002603>
I tried restarting the ssh daemon to no avail. I haven't rebooted yet - perhaps somebody here can suggest other diagnostics. I think it might either be the virtual network card driver, or somebody rooted our ssh.
Ideas..?
Problem solved:
...apparently, 'localhost' was not liked by the remote host. Yet, remote
/etc/hosts
contains:while the local network interface is
Sigh. so much for the bounty of 100rp I put on :)
Although OP's problem has already been solved, I decided to share the solution for my problem, because I got the same error message from ssh and I didn't find any solution on other sites.
In my case I had to connect to the service which listens only on IPv6. I tried:
and a few other ways but it didn't work. Any try of connection to
http://localhost:51005
causes errors like this:channel 2: open failed: connect failed: Connection refused
The solution is:
IPv6 address must be in square brackets.
I would first try this.
You can use "-v" up to 3 times to increase verbosity.
I think this error message can arise if a firewall blocks port 7000, but you had already ruled that out. (If later readers haven't ruled that out, look at the output of
netstat --numeric-ports
.)I think I might have seen this error message a long time ago, when ssh first became aware of IPV6 addresses following an update. I could be wrong about that. If you feel like experimenting, you can try the IPV6 loopback address "0:0:0:0:0:0:0:1" (or "::1").
"...apparently, 'localhost' was not liked by the remote host. Yet, remote /etc/hosts contains:"
Except you were running ssh on the client, so 'localhost' was not liked by your client. The remote /etc/hosts file is for the remote connecting out not incoming connections.
For me adding leading ":" works so command in your case would look like this:
I encountered this same error while trying to connect to mysql on another server via an ssh tunnel. I found that the bind-address parameter in /etc/my.cnf on the target server was bound to my external ip (dual NIC server) rather than internal, which I had no use for.
When I set bind-address=127.0.0.1, I could successfully use my ssh tunnel as follows:
I encountered this error when I was forwarding ports with a full domain name instead of localhost:
The port was being opened only for localhost, so to accept connections with a fully qualified name, I had to add a binding port description:
which would allow connections from anywhere (so it's not that secure, use it sparingly).
???
At
user@host
there's nothing listening port 7000, that's simple and that's all.Alternative interpretation is, in my case, your typing it wrong.
What happens here is the IP address has one too many zeroes, thus not being a valid address. So ssh treats it as a domain name instead which it can't resolve. Oops!
PS: I supplement this so we have comprehensive list of possible problems when troubleshooting same symptoms.
I received the same error message:
And the cause was human error - me trying to access a different port on the remote host than the one I specified.
Just thought I'll share that, although this is probably not the reason why most of you are experiencing this error.