4

I've recently installed Ubuntu 10.10 as a second OS on my desktop, but I'm having a strange problem: it takes several tens of seconds to connect to other linux machines via ssh. On Windows, I have no such problem, it connects instantly.

So, again, it's not a problem the host is having (i.e. high load) and there are no connection problems (i.e. high latency, packet loss, etc). The problem is certainly related to the client and the actions it undertakes when connecting.

I suspect it's something related to DNS/reverse DNS. Something like waiting to get the reverse DNS on my IP before connecting, I dunno..

Does anyone know how to fix this? Thanks.

Later edit: As Janne suggested, I ran the command with the -vvv parameter. The output is:

ssh -p 6969 -vvv [email protected]
OpenSSH_5.5p1 Debian-4ubuntu4, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to myserver.mydomain.com [178.21.120.198] port 6969.
debug1: Connection established.
debug1: identity file /home/sorin/.ssh/id_rsa type -1
debug1: identity file /home/sorin/.ssh/id_rsa-cert type -1
debug1: identity file /home/sorin/.ssh/id_dsa type -1
debug1: identity file /home/sorin/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu4
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: [email protected],[email protected],ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,[email protected],aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: none,[email protected]
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: 
debug2: kex_parse_kexinit: first_kex_follows 0 
debug2: kex_parse_kexinit: reserved 0 
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-ctr hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 111/256
debug2: bits set: 534/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug3: put_host_port: [178.21.120.198]:6969
debug3: put_host_port: [myserver.mydomain.com]:6969
debug3: check_host_in_hostfile: host [myserver.mydomain.com]:6969 filename /home/sorin/.ssh/known_hosts
debug3: check_host_in_hostfile: host [myserver.mydomain.com]:6969 filename /home/sorin/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 1
debug3: check_host_in_hostfile: host [178.21.120.198]:6969 filename /home/sorin/.ssh/known_hosts
debug3: check_host_in_hostfile: host [178.21.120.198]:6969 filename /home/sorin/.ssh/known_hosts
debug3: check_host_in_hostfile: match line 2
debug1: Host '[myserver.mydomain.com]:6969' is known and matches the RSA host key.
debug1: Found key in /home/sorin/.ssh/known_hosts:1
debug2: bits set: 491/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/sorin/.ssh/id_rsa ((nil))
debug2: key: /home/sorin/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found

debug1: Unspecified GSS failure.  Minor code may provide more information


debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/sorin/.ssh/id_rsa
debug3: no such identity: /home/sorin/.ssh/id_rsa
debug1: Trying private key: /home/sorin/.ssh/id_dsa
debug3: no such identity: /home/sorin/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:

I've replaced the user with myuser and the server name with myserver.mydomain.com, for security reasons.

2
  • 1
    Have you already tried ssh -vvv youraccount@otherhost? Could you paste the output of that here? Nov 12, 2010 at 9:48
  • No, I haven't. I will update my post. Nov 12, 2010 at 14:11

2 Answers 2

4

Try setting UseDNS to "no" in your sshd_config and ssh_config. Also set GSSAPIAuthentication to no.

0
1

Which step is slow? The GSS authentication? You can give us timestamps by installing moreutils and running

ssh -vvv user@host 2> >(ts)

You can skip GSSAPI with this flag:

-o PreferredAuthentications=hostbased,publickey,keyboard-interactive,password
2
  • Ok, but how do I disable it by default? Any config files, or something? Nov 12, 2010 at 15:40
  • ~/.ssh/config, man ssh_config. Can be host-based if necessary.
    – Tobu
    Nov 12, 2010 at 21:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .