Ada beberapa server client saat konek terasa sangat lambat. Lambat dalam artian saat konek pake SSH bisa sampe 15-20 detik, kalo di cek latency antara client dan server < 15 ms. Untuk men-debug masalah ini aktifkan -vvv agar SSH menampilkan dimana proses tersebut nge-hang.
... debug3: receive packet: type 7 debug1: SSH2_MSG_EXT_INFO received debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> debug3: receive packet: type 6 debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received
saat di proses debug1: SSH2_MSG_SERVICE_ACCEPT received terjadi delay beberapa detik. Hal ini sepertinya karena masalah DNS, karena server mencoba mencari rDNS dari IP yang sedang terhubung.
Solusi SSH Lambat
Di SSH konfigurasi yang bertugas untuk mengatur ini adalah UseDNS, bila kita mengetik w untuk menampilkan user yang sedang login, dibagian FROM akan terlihat domain name, bukan IP, bila IP tersebut memiliki reverse DNS
20:03:24 up 97 days, 7:06, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 123.11.115.177 19:54 0.00s 0.06s 0.00s w root pts/1 tunnel.jaranguda 20:03 3.00s 0.03s 0.03s -bash
yang bikin jadi lambat adalah waktu pengecekan apakah IP tersebut memiliki reverse DNS, solusinya bila anda memiliki static IP, daftarkan IP tersebut berikut DNS nya di /etc/hosts
Formatnya adalah IP NAMADNS
, lihat baris terakhir gambar diatas.
ganti 12.13.14.15
menjadi IP Public yang digunakan, dan home.server
bisa dibuat apa saja.
Coba konek ke SSH server lalu jalankan w
20:11:20 up 97 days, 7:14, 1 user, load average: 0.06, 0.03, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 home.server 20:11 0.00s 0.02s 0.00s w
koneksi terasa jauh lebih cepat dan normalnya seperti itu.
Cara diatas adalah solusi sementara, bila menggunakan IP yang berbeda prosesnya akan tetap terasa lambat, untuk itu kita perlu mengubah konfigurasi SSH server, ganti nilai UseDNS yes menjadi UseDNS no di /etc/ssh/sshd_config
. Terakhir restart SSH server
systemctl restart ssh # atau systemctl restart sshd