Mengapa "kata sandi" meminta selamanya ketika saya SSH ke server Ubuntu 9.05 saya?


27

Jawaban: Itu, sebenarnya, melakukan resolusi DNS terbalik. Berdasarkan saran di bawah dan artikel ini , saya menambahkan "UseDNS no" ke sshd_config saya, reboot ssh, dan sekarang prompt kata sandi segera ditampilkan.

Ketika saya SSH ke server saya, saya diberikan prompt standar "login as:", diikuti oleh prompt "user @ host's password:". Untuk alasan apa pun, yang kedua selalu membutuhkan waktu untuk ditampilkan. Server saya tidak sedang dimuat dan biasanya menjalankan perintah dengan cukup cepat.

Sekarang, kita berbicara hanya sekitar 10 detik antara waktu saya menekan Enter untuk nama pengguna dan ketika prompt kedua ditampilkan, tetapi ketika Anda sering melakukan ini, itu akan mengganggu. Saya menduga Ubuntu sedang mencari akun pengguna saya, tetapi ia memiliki <5 akun di seluruh instalasi.

Pembaruan @Josh / var / log / messages memang mengandung permata ini:

Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith]
Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: There is already a key in the user session keyring for the given passphrase.

Di mana msmith adalah nama pengguna saya. Apa artinya semua ini?


Apakah Anda tahu (atau ingin belajar) cara menggunakan sniffer paket seperti Wireshark atau tcpdump? Itu dapat memberi tahu Anda jika server memang menggunakan semua waktu itu dengan sendirinya, atau sebenarnya berkomunikasi dengan klien.
Arjan

Jawaban:


17

Apakah mungkin melakukan reverse lookup DNS pada IP Anda? Anda dapat memeriksa hasilnya secara online jika klien menggunakan alamat IP publik, atau menggunakan sesuatu seperti yang berikut dari server Anda:

dig -x CLIENT_IP_ADDRESS

Apakah ada sesuatu di dalamnya /var/log/messages?


Saya memang memiliki Peringatan di log: Peringatan: Menggunakan nilai garam default (tidak ditentukan dalam ~ / .ecryptfsrc). Saya memposting seluruh bagian ke pertanyaan untuk analisis Anda.
rcampbell

@ rrc7cz, jadi bagaimana dengan itu membalikkan DNS? Apakah alamat IP Anda menentukan sesuatu? (Saya ragu itu akan membantu, karena paling sering dibutuhkan beberapa jabat tangan untuk memutuskan apakah permintaan untuk nama pengguna harus ditampilkan. Tes cepat menggunakan Wireshark pada Mac saya menunjukkan bahwa SSH dimulai jauh sebelum nama pengguna diminta. tapi mungkin ? beberapa klien meminta nama pengguna sebelum bahkan mencoba untuk menghubungkan ...)
Arjan

3
Saya mengalami masalah pencarian DNS terbalik ini memperlambat koneksi ssh saya di beberapa instalasi ... Jika Anda menemukan ini adalah kasus komentar di luar baris "UseDNS yes" di / etc / ssh / sshd_config dan restart sshd.
John Barrett

@ John, apakah Anda ingat jika itu melambat setelah mengetikkan nama pengguna?
Arjan

1
"UseDNS no" membantu saya juga! UpVotes untuk T&J!
Grizly

14

Mungkin resolusi DNS terbalik (server berusaha mendapatkan nama klien yang diberikan IP) membutuhkan waktu. Bisakah Anda memeriksa apakah / etc / ssh / sshd_config telah menetapkan "VerifyReverseMapping yes"? Setel ke "VerifyReverseMapping no" dan periksa apakah membantu.

Sunting: Tampaknya VerifyReverseMapping sekarang sudah tidak digunakan lagi dan useDNS adalah konfigurasi baru di sshd_config .


Mungkin benar, tetapi apakah masuk akal jika prompt nama pengguna ditampilkan segera, setelah itu diperlukan 10 detik untuk dimintai kata sandi?
Arjan

Klien dapat menyelesaikan nama server dan mengirim permintaan, itu sebabnya permintaan pengguna langsung ditampilkan. Tetapi kemudian server mencoba untuk mendapatkan nama klien (membalikkan resolusi DNS). Ini dapat habis jika dosis masuk tidak ada. Pengaturan "VerifyReverseMapping" di sshd-config mengontrol pemeriksaan ini.
secureBadshah

1
Ini adalah alasan lambatnya kasus saya, jadi setidaknya masuk akal dalam beberapa kasus. Pikiran Anda bahwa default adalah yes, jadi jangan hanya mencari jika useDNSsudah diatur :)
Nanne


3

Anda selalu dapat masuk dengan nama pengguna untuk memulai dengan:

ssh user@server

apakah itu berpengaruh?

Jika Anda menggunakan Putty, itu dapat dikonfigurasi di bawah Koneksi -> Data sebagai nama pengguna login otomatis.


1
Meskipun ini jelas tidak mempercepat waktu yang dibutuhkan untuk kata sandi muncul, itu jelas mempercepat keseluruhan proses login. Terima kasih
rcampbell

3

Jika Anda tidak memiliki nama domain yang tepat untuk semuanya, buat saja sesuatu dan masukkan /etc/hosts. Lihat apakah itu berjalan lebih cepat ... jangan repot-repot .comhanya menggunakan "bob, carol, ted, alice" atau apa pun yang Anda inginkan ...

Jika masalahnya adalah penyelesai batas waktu maka ini akan memperbaikinya.


1

Ingat bahwa klien juga akan melakukan pemeriksaan pengecekan reverse-DNS, yang bisa memakan waktu 30 detik atau lebih untuk timeout jika pemetaan reverse-DNS tidak ada dengan konfigurasi resolusi tertentu.

Di salah satu /etc/ssh/ssh_configatau di ~/.ssh/configset CheckHostIP nountuk menonaktifkan pencarian sisi klien ini.

Lihat man 5 ssh_configuntuk keterangan lebih lanjut.


1

Saya telah menemukan solusi alternatif untuk masalah ini: - http://www.patrickmin.com/linux/tip.php?name=ssh_pause

Saya mengalami masalah yang sama dengan masuk ke mesin linux build menggunakan Putty di bawah windows. Menambahkan alamat IP kotak windows saya ke / etc / hosts di mesin linux menyelesaikan masalah.


3
Selamat datang di Pengguna Super - Kami biasanya lebih suka Anda memasukkan rincian dan bukan hanya tautan. Bisakah Anda mengedit jawaban Anda untuk menambahkan lebih banyak informasi dari tautan?
Simon Sheehan

1

Sebagai catatan saja, saya mengalami masalah yang sama di mana ssh akan cepat dari rumah ke server-rumah saya (terutama menggunakannya untuk git), tetapi akan membutuhkan waktu 10-20 detik di tempat kerja untuk mendapatkan prompt untuk kata sandi.

Saya harus mematikan UseDNS nodan memulai kembali sshd sudo systemctl restart sshd.service. Kemudian berfungsi dari semua lokasi.

Saya tahu pertanyaannya dijawab dan diterima, tetapi saya ingin menambahkan informasi karena saya harus "aktif" mengaturnya agar tidak untuk menghentikan penggunaan dns.


0

Silakan periksa apakah nslcd (LDAP daemon) sedang berjalan:

ps -ef | grep nslcd

Itu bisa menyebabkan masalah ini.

Jika sedang berjalan, hentikan dan hapus dari daftar layanan

service nslcd stop
chkconfig nslcd off
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.