Bagaimana cara mempercepat login ssh saya yang terlalu lambat?


42

Berlari ssh user@hostnamemembutuhkan waktu ~ 30an. Inilah skenarionya:

  • ini adalah VM di LAN lokal
  • Mesin Windows dan Mac mendapatkan login instan
  • Saya menggunakan Debian dan saya bisa mereproduksi dengan mesin Ubuntu
  • seseorang yang menggunakan Ubuntu mengatakan bahwa masuk ke mesin saya (LAN lokal) juga instan
  • menggunakan alamat IP hostname membutuhkan waktu setengah (~ 15s)

[ perbarui ]

Menggunakan ssh -vvv user@hostname, di sinilah ia paling menunggu:

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

Dan kemudian menunggu sedikit di sini:

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

1
Anda menggunakan otentikasi kata sandi atau pubkey? dan jika kata sandi, apakah a id_dsaatau id_rsafile ada pada Anda ~/.ssh? mungkin instalasi ssh Anda mencoba otentikasi yang salah terlebih dahulu dan server Anda tidak menolak tetapi abaikan saja permintaan yang mengakibatkan batas waktu 30-an
Tobias Kienzler

@tobias saya menggunakan kata sandi dan saya tidak punya "~/.ssh"file. Itu adalah direktori, dan hanya memiliki "known_hosts"file di dalamnya.
tshepang

5
Sepertinya Anda memiliki batas waktu DNS 15-an. Mungkin server sedang melakukan pencarian DNS; jika Anda bisa, pastikan Anda sudah UseDNS nomasuk sshd_configdi server. Bagaimanapun, jalankan ssh -vvv user@hostnameuntuk melihat di mana login tergantung.
Gilles 'SO- stop being evil'

@gil, terima kasih. Saya memperbarui pertanyaan. Saya akan meminta admin untuk memeriksa pengaturan UseDNS itu .
tshepang

3
@Tepanget: Oh, Anda menggunakan otentikasi Kerberos (GSSAPI). Saya tidak terbiasa dengan itu. Jika salah konfigurasi, mungkin itu menyebabkan penundaan. Ini adalah sesuatu yang dapat Anda tanyakan kepada admin Anda. DNS mungkin merupakan herring merah; itu penyebab paling umum di alam liar, tetapi mungkin masalah Anda berbeda.
Gilles 'SO- stop being evil'

Jawaban:


32

Edit " / etc / ssh / ssh_config " Anda dan komentari baris berikut ini:

GSSAPIAuthentication yes
GSSAPIDelegateCredentials no

3
+1 Jawaban yang bagus! (1) Apakah kecepatan normal untuk koneksi login ssh untuk mengambil waktu kursor berkedip 7 kali? (2) Mengapa ia bekerja dengan memberi komentar GSSAPIAuthentication yesdan GSSAPIDelegateCredentials no? @Tshepang
Tim

@Tim (1) terlalu lama ... tergantung pada koneksi, saya tidak berharap untuk mengambil lebih dari 2 detik; (2) Saya tidak tahu, hanya itu berhasil
tshepang

1
Default untuk GSSAPIAuthentication di sebagian besar versi OpenSSH adalah "tidak", tetapi beberapa distro mengaturnya menjadi "ya" di file sshd_config dan ssh_config. Jika Anda tidak membutuhkan / menggunakannya, ini memperlambat jabat tangan koneksi / otentikasi.
tgharold

Jika otentikasi LDAP / AD sedang digunakan, tidak akan menonaktifkan GSSAPI menyebabkan ikatan sederhana digunakan, berpotensi mengirim kata sandi melalui jaringan dalam plaintext?
Shannon

Verifikasi semua nameserver masih ada di /etc/resolv.conf. Jika tidak, bawa keluar. Ini menyelesaikan masalah saya.
teknokrat

30

Saya punya masalah ini dan menyelesaikannya dengan mematikan resolusi Reverse DNS di SSH.

Jadi dalam sshd_configpada server yang perubahan ini:

 #UseDNS yes

untuk ini:

UseDNS no

1
Saya melakukan perubahan (meskipun saya tidak punya pilihan UseDNS komentar-out ), reset server ssh saya, dan masih masalah yang sama.
tshepang

2
@ Dia hmm, aneh. Satu-satunya masalah kecepatan yang pernah saya alami dengan SSH adalah karena ini.
Earlz

1
Saya skeptis karena saya gunakan untuk masuk menggunakan alamat IP (LAN rumah), tetapi solusi ini memperbaiki masalah saya. Demi Google, meskipun itu terjadi setelahnya, penundaan itu tidak ada hubungannya dengan "kunci: /home/mylogin/.ssh/id_ecdsa ((nil))" pesan (saat berjalan ssh -vvv).
Skippy le Grand Gourou

7

Sudahkah Anda memverifikasi pengaturan DNS Anda?

Coba pengaturan mdns offdi /etc/host.conf.

Ini menonaktifkan resolusi MDN dan banyak membantu saya.

EDIT:

Sepertinya gentoo menangani ini sedikit berbeda. Untuk menonaktifkan pencarian DNS multicast, Anda harus mengubah file /etc/nsswitch.conf.
Seharusnya ada sesuatu seperti:

hosts:          files mdns

Ubah ke:

hosts:          files dns

+1 ide bagus. @Tshepang apakah ssh terhubung lebih cepat ketika Anda menggunakan IP hostname secara langsung?
Tobias Kienzler

@tobias membutuhkan waktu setengah
tshepang

Saya mendapatkan /etc/host.conf: line 2: bad command mdns off saat menjalankan ssh user@hostname.
tshepang

Tampaknya ini adalah pengaturan yang sudah ketinggalan zaman, sejak glibc 2.3.x (2006): forums.gentoo.org/viewtopic-t-476558-highlight-mdns.html . Apa yang Anda gunakan (OS, versi glic)?
tshepang

1
Anda mengatakan hanya perlu separuh waktu ketika Anda menggunakan alamat IP. Ini berarti Anda memiliki masalah dengan resolusi nama Anda (IP => FQDN atau FQDN => IP). Jadi pertama-tama lihat konfigurasi DNS Anda dan kemudian coba cari tahu apakah Anda memiliki masalah dengan ssh atau tidak.
Christian

3

Menambahkan nama host ke /etc/hoststerkadang dapat mengatasi masalah ini.


Bekerja untuk satu hostname, tetapi solusi Earlz lebih umum (dan memperbaiki masalah yang sama).
Skippy le Grand Gourou

1

Periksa juga apakah nscdsudah diinstal dan dijalankan.

Tidak memiliki cache dns dapat meningkatkan waktu yang diperlukan untuk menyelesaikan catatan PTR (dengan asumsi bahwa klien ssh melakukan pencarian terbalik dns untuk alamat IP server)


0

Saya memiliki masalah yang sama di lingkungan Windows 2008 R2 tetapi "useDNS no" tidak berfungsi.

Saya mencoba menambah host file IP dan host server penghubung dan lebih cepat 30 detik. Yang membuat saya berpikir bahwa resolusinya mungkin dalam DNS.

Saya mencoba menambahkan server DNS tetapi ini tidak menyelesaikannya.

Server saya memiliki dua akhiran DNS. 1 untuk domain perusahaan tempat server berada (domain.com) dan yang lainnya untuk antarmuka eksternal yang terhubung ke jaringan pribadi (domain.net).

Urutan akhiran DNS adalah domain.net terlebih dahulu kemudian domain.com berikutnya

Klien SFTP / SSH saya ada di domain perusahaan. Omong-omong klien yang bermasalah berasal dari domain perusahaan.

Yang berhasil bagi saya adalah saya membuat domain.com terlebih dahulu kemudian domain.net kedua

Sambungan koneksi 2m30s sebelum menjadi 3-4s saja.

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.