ssh hangs in initial handshaking when using IPv6
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openssh (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
ssh hangs in initial handshaking when using IPv6 to connect with a NetBSD 4.0 ssh server. I tried NetBSD on i386 and amd64.
Here is the output from ssh -v when it fails: (I censored the IPv6 address)
rhialto@glicca:~$ ssh -v radl
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to radl [2001:xxxx:xxxx::1] port 22.
debug1: Connection established.
debug1: identity file /home/rhialto/
debug1: identity file /home/rhialto/
debug1: identity file /home/rhialto/
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.4 NetBSD_
debug1: match: OpenSSH_4.4 NetBSD_
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-
debug1: SSH2_MSG_KEXINIT sent
and here it hangs, until the other side times out.
When using IPv4 it works fine.
strace shows that ssh hangs in a select() call:
....
read(3, "u", 1) = 1
read(3, "r", 1) = 1
read(3, "e", 1) = 1
read(3, "_", 1) = 1
read(3, "S", 1) = 1
read(3, "h", 1) = 1
read(3, "e", 1) = 1
read(3, "l", 1) = 1
read(3, "l", 1) = 1
read(3, "-", 1) = 1
read(3, "2", 1) = 1
read(3, "0", 1) = 1
read(3, "0", 1) = 1
read(3, "6", 1) = 1
read(3, "1", 1) = 1
read(3, "1", 1) = 1
read(3, "1", 1) = 1
read(3, "4", 1) = 1
read(3, "\n", 1) = 1
write(3, "SSH-2.
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
write(3, "\0\0\3\
select(4, [3], NULL, NULL, NULL
It is apparently an Ubuntu 8.04.1-specific problem, since some other people I polled on a #netbsd irc channel reported that they could repeat the problem on Ubuntu-based machines but the problem did not occur for other Linux distributions. I'm using eeebuntu on an Eee 901 which is based on 8.04.01.
I found a xubuntu 8.04 live cd which does not show the problem so probably the problem is quite specific.
rhialto@glicca:~$ lsb_release -rd
Description: Ubuntu 8.04.1
Release: 8.04
rhialto@glicca:~$ apt-cache policy ssh
ssh:
Installed: (none)
Candidate: 1:4.7p1-8ubuntu1.2
Version table:
1:
500 http://
500 http://
1:
500 http://
hm, does that think I don't have ssh installed? I wonder which ssh I am then supposed to be using...
It does claim to be "OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007"
I expect the ssh client to continue after SSH2_MSG_KEXINIT, like when using IPv4.
Changed in openssh: | |
status: | Invalid → New |
Changed in openssh: | |
status: | New → Confirmed |
tags: | added: ipv6 |
Ah, it is openssh-client that is installed:
rhialto@glicca:~$ apt-cache policy openssh-client nl.archive. ubuntu. com hardy-updates/main Packages security. ubuntu. com hardy-security/main Packages dpkg/status 4.7p1-8ubuntu1 0 nl.archive. ubuntu. com hardy/main Packages
openssh-client:
Installed: 1:4.7p1-8ubuntu1.2
Candidate: 1:4.7p1-8ubuntu1.2
Version table:
*** 1:4.7p1-8ubuntu1.2 0
500 http://
500 http://
100 /var/lib/
1:
500 http://