SSH hang setelah otentikasi

10

Ketika masuk ke salah satu server saya melalui ssh, itu hanya hang setelah otentikasi. Ini adalah output pada klien dengan -v.

OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to host1 [10.6.27.64] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type -1
debug1: identity file /home/user/.ssh/id_rsa type 1
debug1: identity file /home/user/.ssh/id_dsa type -1
debug1: loaded 3 keys
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
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
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'host1' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:172
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Unspecified GSS failure.  Minor code may provide more information
No credentials cache found

debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = C
debug1: Sending env LC_ALL = C
Last login: Wed May 21 10:24:14 2014 from host2
This machine has been configured with kickstart
host1 in bcinf17 in bay 3 in rack D10-Mid

Dan di /var/log/securedalam server saya melihat ini (beruntung saya masih memiliki sesi terbuka):

May 21 10:27:31 host1 sshd[12387]: Accepted publickey for user from 1.1.11.239 port 34135 ssh2
May 21 10:27:31 host1 sshd[12387]: pam_unix(sshd:session): session opened for user user by (uid=0)

Jadi tidak ada yang salah. Klien dan server tampaknya dapat berkomunikasi. Tidak ada dalam /var/log/messages.

Banyak ruang disk. Beberapa jalur sudah terpasang (termasuk area rumah), tetapi shell saya yang masih aktif dapat mengaksesnya OK.

Saya dapat terhubung ke server lain; hanya yang ini yang punya masalah. Saya sudah mencoba memulai kembali sshd. File konfigurasi untuk sshdterlihat seperti default, jadi tidak ada di sana. Sejauh yang saya tahu, tidak ada yang berubah baru-baru ini.

Mencoba menjalankan perintah ( ssh host1 -t bash, atau -t vi) juga tampaknya hang, jadi jangan berpikir itu ada hubungannya dengan skrip login saya.

Juga mencoba masuk dari host lain di lokasi yang sama dan lokasi lain, atau dari Windows via Putty, dan masuk menggunakan kata sandi alih-alih kunci.

Tidak yakin ke mana lagi mencari atau apa lagi yang harus dicoba.

Ini adalah server RHEL 6.4, 64 bit.

andrewrjones
sumber
Hal pertama yang akan saya lakukan adalah menghapus semua skrip login pengguna hanya untuk memastikan.
user9517

Jawaban:

3

Ada beberapa hal yang dapat menyebabkan hang setelah otentikasi SSH.

Namun sebagian besar dari ini juga akan membawa gejala lain (hang setelah SSH-auth hanya gejala yang paling terlihat)

  1. Seperti yang disebutkan Iain, skrip login pengguna apa pun.
    • ~/.bashrc, ~/.bash_profile, ~/.profile, ~/.kshrcDan sebagainya
  2. Terlalu banyak proses menjalankan / memulai kembali.
    • Sesuatu memiliki fork()terlalu banyak proses anak dan bebannya ( skor 1/5/15 ) terlalu tinggi.
  3. Ada masalah menunggu I / O.
    • Biasanya disebabkan oleh hard-drive sekarat (umum) atau NIC berperilaku buruk (jarang).
  4. Gantung modul PAM pihak ketiga (mis: konfigurasi Kerberos non-standar)
    • Tidak selalu modul itu sendiri, tetapi kadang-kadang layanan (seperti audit) yang memiliki log-server penuh di suatu tempat.
Sinyal15
sumber
2

Namun sumber masalah lain mungkin ssh klien menunggu ssh-agent (semua yang dikonfigurasi untuk menggunakannya, tentu saja). Jika ssh'ing di mana saja terjebak

debug1: SSH2_MSG_NEWKEYS diterima

kemudian periksa ps auxw | grep askpassdan dialognya yang mungkin luput dari perhatian Anda.

PS: ini agaknya bukan pelakunya tapi saya belum googled pertanyaan yang lebih relevan sejauh ini.

Michael Shigorin
sumber
2
Ini memecahkan masalah yang saya alami. Terima kasih!
geeth
Selamat datang :-) Tidak jelas bagi saya sama sekali selama beberapa menit ...
Michael Shigorin
Tidak yakin apakah ini masalah mendasar bagi saya, tetapi saya perhatikan bahwa saya melihat kesalahan berikut menjalankan perintah di atas di WSL. Ini membuat saya mengandalkan git-bash untuk Windows yang tidak memiliki masalah yang sama. `` `Sinyal 11 (SEGV) ditangkap oleh ps (3.3.12). ps: ps / display.c: 66: tolong laporkan bug ini `` `
jpierson
1

Apakah itu terhubung langsung jika Anda gunakan ssh -o GSSAPIAuthentication=no user@host?

Jika demikian, sistem mungkin tergantung pada suatu titik memutuskan metode GSSAPI. Bagi saya, hanya satu host yang melakukan ini, jadi saya hanya menonaktifkan GSSAPI ~/.ssh/configuntuk host itu:

Host badHostName
    GSSAPIAuthentication no

Saya belajar ini dari http://germanrumm.eu/fixing-ssh-login-delay-how-to-disable-gssapi-with-mic-on-ubuntu-linux/ tetapi tidak pernah mengetahui penyebabnya.

Shaun
sumber