ssh hang tanpa prompt kata sandi - berfungsi di root atau akun lain

14

Saya memiliki login berbasis ssh yang berfungsi dengan baik. Kemudian, saya mengubah nama host di komputer saya, dan login berbasis kunci berhenti berfungsi. Tampaknya masuk akal. kunci mungkin bergantung pada nama host lama saya. Jadi, saya menghapus semua kunci saya dan semua file di ~ / .ssh / dan dibuat ulang (dan mengubah otor_keys pada server yang saya hubungkan)

Sekarang, setiap kali saya mencoba untuk ssh, itu hanya hang tanpa kata sandi, di mana pun saya mencoba ssh ke - bahkan server di mana saya tidak memiliki pengaturan login berbasis kunci. Tidak ada di .ssh / config.

Terlebih lagi, ketika saya 'su -' untuk root, ssh bekerja dengan sempurna. tidak ada masalah sama sekali. Ini hanya terjadi pada akun pengguna saya.

Di bawah ini adalah beberapa informasi debug dari ssh

ssh -vv [email protected]
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009
debug1: Membaca data konfigurasi / Pengguna / nama file / file. config
debug1: Membaca data konfigurasi / usr / etc / ssh_config
......
debug1: Host 'myremoteserver.com' dikenal dan cocok dengan kunci host RSA.
debug1: Ditemukan kunci di / Pengguna / nama pengguna / .ssh/known_hosts:1
debug2: bit diatur: 512/1024
debug1: ssh_rsa_verify: signature benar
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS terkirim
debug1: mengharapkan SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS diterima
debug1: SSH2_MSG_SERVICE_REQUEST terkirim
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT diterima

Dan kemudian hanya hang di sini .....

Berikut adalah dtruss (seperti strace tetapi untuk OSX) output di dekat ujung tempat hang: sudo dtruss ssh -vv [email protected]

pilih (0x4, 0x508200, 0x0, 0x0, 0x0) = 1 0
baca (0x3, "$ \ 222 \ 351 {L \ 363 \ 261 \ 25063sN \ 216 \ 300 @ q7 \ 203 \ 276b \ 257 \ 354 \ 336 \ 260! {\ 342 \ 017 \ 271 = \ 222, \ 245 \ 347t \ 006 \ 225 \ 257 \ 333; \ 204 \ 020] \ 242 \ 005z # \ 0 ", 0x2000) = 48 0
tulis (0x2, "debug2: service_accept: ssh-userauth \ r \ n \ 0", 0x26) = 38 0
connect (0x4, 0xBFFFEEA2, 0x6A) = 0 0
tulis (0x4, "\ 0", 0x4) = 4 0
tulis (0x4, "\ v5 \ 004 \ 0", 0x1) = 1 0
baca (0x4, "\ 0", 0x4) = -1 Err # 4

Tampaknya mencoba untuk membaca sesuatu dan hanya menggantung ini. Jika ada yang punya saran atau ide, saya akan sangat berterima kasih!

saveraver
sumber
Saya memiliki masalah yang sama pada Snow Leopard (10.6.8 dengan patch terbaru dari Apple). Ini hanya terjadi ketika mencoba terhubung ke server melalui VPN. Sebuah reboot memperbaiki masalah untuk sementara waktu, tetapi pasti akan muncul kembali. Pencarian DNS server bukan masalah (diuji itu). Ini ada hubungannya dengan keadaan SSH pada klien. Membunuh ssh-agent atau beralih ke root tidak menyelesaikan masalah.
Daniel

Jawaban:

9

Alasan klien ssh Anda hang untuk akun Anda tetapi tidak untuk akun lain (root) mungkin karena ada sesuatu yang salah dengan ssh-agent Anda. Entah itu ssh-agenttidak berjalan atau konfigurasinya salah dalam beberapa cara.

Untuk mendapatkan konfirmasi tentang itu, Anda dapat mencoba yang berikut:

unset SSH_AUTH_SOCK
ssh [email protected]

Jika Anda kemudian diminta untuk memasukkan frasa sandi ke ssh_key Anda, itu berarti Anda memiliki masalah dengan ssh-agent Anda.

Lihat juga posting saya tentang pertanyaan terkait ini .

Tonin
sumber
Ini berhasil bagi saya! Namun saya harus melakukannya setiap kali saya me-restart komputer saya. Apakah Anda tahu cara untuk memperbaikinya secara permanen?
Johan Dettmar
@JohanDettmar memeriksa posting saya yang tertaut dan saran di dalamnya. Jika tidak membantu Anda lebih lanjut, mungkin akan lebih baik untuk mengajukan pertanyaan baru yang menjelaskan masalah Anda dengan lebih detail.
Tonin
7

Bisakah saya menarik minat Anda dengan DNS terbalik?

Pada dasarnya, klien melakukan reverse DNS di server, atau sebaliknya.

Saya mengusulkan tes:

Nonaktifkan pencarian DNS di server dengan mengedit / etc / ssh / sshd_config dan memastikan "UseDNS" diatur ke "tidak".

Jalankan "service ssh reload" (atau apa pun yang menyebabkan daemon ssh Anda membaca ulang konfigurasi), lalu coba lagi.

Secara kebetulan, tidak bahagia akhirnya meminta Anda setelah jangka waktu yang lama, bukan?

Hal lain yang mungkin Anda periksa adalah melihat isi / etc / hosts di server untuk memastikan tidak ada yang salah di sana.

Matt Simmons
sumber
1

Periksa izin pada direktori ~ / .ssh dan file di dalamnya. Umask default Anda mungkin terlalu permisif & ketika Anda membuat ulang file, Anda mungkin secara tidak sengaja memberi mereka izin yang salah. Saya telah dibakar oleh ini beberapa kali sendiri. Tidak ada klien ssh (atau server) yang saya gunakan pernah memberikan pesan kesalahan yang berguna tentang ini ...

KevinRae
sumber
terima kasih atas tipnya. Sepertinya perms saya sama. saya dapat menggunakan ssh fine w / akun root saya, dan saya memverifikasi bahwa perms sama dengan yang itu. Yang aneh adalah, itu hanya hang dan tidak mengatakan apa-apa. Terima kasih atas usahanya!
saveraver
1

Anda memiliki ruang disk kosong di klien Anda (dan di server Anda)?

df-h

Omry
sumber
Terima kasih. Iya. cukup ruang. lebih dari 100 gigs gratis. Terima kasih atas tipnya.
saveraver
1

Saya punya masalah serupa.

ssh domain.ip:user.name

Tampaknya saya dapat mem-bypass masalah dengan memaksa nama login seperti itu.

ssh -v domain.ip -l user.name
Drone Brain Inc
sumber
1

Bagi saya, meningkatkan ke Snow Leopard memecahkan masalah ini. Jadi, saya pikir itu terkait dengan bug di OSX.

saveraver
sumber
0

Jika itu karena kunci yang disimpan, Anda harus dapat menghapusnya dari direktori ~ / .ssh Anda di file known_hosts. Cukup temukan entri dan hapus maka itu akan meminta Anda lagi.

Di sisi lain, itu harus memberi peringatan ketika tuan rumah tidak cocok dengan apa yang direkam.

Saya memiliki masalah di mana pada OS X tindakan pencarian nama host seperti gagal; koneksi beberapa kali keluar dari menunggu begitu lama, atau ketika muncul prompt itu sudah menunggu begitu lama itu memberi sekitar sepuluh detik bagi Anda untuk memasukkan kata sandi sebelum menjatuhkan koneksi. Saya tidak pernah bisa melacaknya meskipun orang menyarankan menambahkan host yang dimaksud ke file host. Saya kira itu hanya "kesalahan dengan pencarian DNS OS X" dan diharapkan dapat ditoleransi ... jika orang lain memiliki masalah ini dan menyelesaikannya, saya ingin tahu tentang hal itu.

Bart Silverstrim
sumber
Terima kasih Bart! Jadi saya pada dasarnya telah menghapus semua yang ada di dalam .ssh (dengan bijak atau tidak bijaksana) dan tidak ada apa pun di sana sekarang. Tampaknya masih membeku dan terus menggantung. Karena saya juga telah memadamkan known_hosts, pertama-tama ia bertanya apakah saya ingin terus terhubung, meletakkan kunci dalam file known_hosts dan menggantung di tempat yang sama seperti sebelumnya. Saya akan segera memperbarui respons saya untuk memperjelas hal ini. Saya sangat menghargai bantuan Anda.
saveraver
1
Ini benar-benar terdengar seperti kesalahan yang saya temui di MacBook. Tampaknya terkait dengan pencarian DNS dalam beberapa cara, akhirnya saya menyerah dan hanya hidup dengan jeda panjang sebelum menghubungkan dan berharap itu akan diperbaiki nanti.
Bart Silverstrim
0

Periksa log di server. Biasanya di /var/log/auth.log(Debian / Ubuntu) atau /var/log/secure(RedHat / CentOS). Setiap masalah dengan menghubungkan biasanya dicatat di sana.

Rory
sumber
0

Pastikan / etc / hostname diakhiri oleh baris baru.

Massimo Fazzolari
sumber