ssh - zamrznutí spojení po přihlášení

Jaroslav Sykora jaroslav.sykora na gmail.com
Středa Září 6 12:46:07 CEST 2006


Dobrý den,
mám takový ošklivý problém s ssh serverem na linuxu. Počítač funguje
především jako nat router (má 2 síťovky) a mail server pro menší firmu.
Tyto dvě služby fungují bez problémů. Zlobí jenom ssh a to dost (pro mě)
divným způsobem.

Na ssh se lze bez problémů přihlásit z vnitřní sítě.
Z internetu to nejde, a to následujícím způsobem (mail.cform.cz je ten
zlobivý server):

sykora na veverka:~$ ssh -vv root na mail.cform.cz
OpenSSH_3.8p1, SSH protocols 1.5/2.0, OpenSSL 0.9.7d 17 Mar 2004
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to mail.cform.cz [88.100.254.54] port 22.
debug1: Connection established.
debug1: identity file /home/11/sykora/.ssh/identity type -1
debug1: identity file /home/11/sykora/.ssh/id_rsa type -1
debug1: identity file /home/11/sykora/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.0
debug1: match: OpenSSH_4.0 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_3.8p1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit:
diffie-hellman-group-exchange-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,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc na lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit:
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc na lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit:
hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160 na openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit:
hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160 na openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib
debug2: kex_parse_kexinit: none,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,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc na lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit:
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc na lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit:
hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160 na openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit:
hmac-md5,hmac-sha1,hmac-ripemd160,hmac-ripemd160 na openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib
debug2: kex_parse_kexinit: none,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_init: found hmac-md5
debug1: kex: server->client aes128-cbc hmac-md5 none
debug2: mac_init: found hmac-md5
debug1: kex: client->server aes128-cbc 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: 126/256
debug2: bits set: 523/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'mail.cform.cz' is known and matches the RSA host key.
debug1: Found key in /home/11/sykora/.ssh/known_hosts:5
debug2: bits set: 503/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: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/11/sykora/.ssh/identity ((nil))
debug2: key: /home/11/sykora/.ssh/id_rsa ((nil))
debug2: key: /home/11/sykora/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/11/sykora/.ssh/identity
debug1: Trying private key: /home/11/sykora/.ssh/id_rsa
debug1: Trying private key: /home/11/sykora/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
root na mail.cform.cz's password:
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Entering interactive session.
debug2: callback start
debug2: ssh_session2_setup: id 0
debug2: channel 0: request pty-req
debug2: channel 0: request shell
debug2: fd 3 setting TCP_NODELAY
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768

Jak je vidět z výpisu, dojde normálně ke spojení, zadám heslo, heslo
je akceptováno serverem. Následně se to prostě zasekne. Když se na
serveru podívám, co se děje, je vidět, že byl již dokonce spuštěn bash
a je navázáno spojení. Tohle je relevantní řádek z netstat:

Proto Recv-Q Send-Q
tcp        0    336 192.168.112.102:ssh
veverka.sh.cvut.cz:4226     SPOJENO

Problém je možná v tom poli SendQ - jakoby se zablokovala odchozí
fronta tcp spojení.
Taky by mohl být problém někde v DNS, ale to by zase nefungoval
ani mail server a k zaseknutí ssh by došlo mnohem dřív, pravděpodobně
při kontrole ip klienta proti hosts.allow (i když pokud si vzpomínám, tak
v hosts.allow jsou napsány přímo ip adresy...) Zaplněným diskem by to taky
nemělo být, protože z lokální sítě se lze přihlásit.

Ještě bych měl zmínit, že donedávna všechno šlo ok, pak se změnil
poskytovatel připojení a od té doby to zlobí. (pravděpodobně) nedošlo
tedy ke změně konfigurace ssh serveru. Já bohudík nejsem správcem toho
počítače, ale asi jsem tady v našem místním kolektivu jediný, kdo má
nějaké zkušenosti s tučňákama, no ale s tímhle si moc nevím rady.

Díky za odpovědi

-- 
Infinite diversity in infinite combinations (IDIC).


Další informace o konferenci Linux