Bila muncul peringatan sewaktu login ke server lewat SSH
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:EVKTI8rrGbIYimZq8p8payTUAOSDJJADF. Please contact your system administrator. Add correct host key in /home/tommy/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/tommy/.ssh/known_hosts:160 ECDSA host key for 192.168.1.1 has changed and you have requested strict checking. Host key verification failed.
kalo tidak di atasi, kita tidak akan bisa login ke server tersebut. Ada beberapa kemungkinan kenapa muncul peringatan tersebut, sebelumnya akan saya jelaskan secara singkat cara SSH client konek SSH server.
ketika kita menjalankan ssh root@IP-SERVER
, client akan menanyakan server key yang dimiliki, lalu disimpan di file ~/.ssh/known_hosts
, jadi tiap terhubung ke server yang sama tidak akan ditanyakan apakah key server tersebut dipercaya atau ngga selama key nya sama. Masalah yang terjadi disini adalah anda terhubung ke IP server yang sudah pernah anda simpan, tetapi terdapat perubahan key/fingerprint dari SSH Server yang bisa terjadi karena install ulang, Key nya diubah oleh admin. Hal ini akan sering terjadi bila anda sering testing banyak server di cloud yang sering memberikan IP yang sama sewaktu reinstall.
Solusi REMOTE HOST IDENTIFICATION HAS CHANGED
Pertama check baris ke 160 dari file .ssh/known_hosts
seperti yang muncul di error diatas.
$ sed '160q;d' ~/.ssh/known_hosts # output 192.168.1.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIpFvL+wRfTbKYEKmem4EYolUiJDg1XL+VQM0elyC0pYZnS3VB3yl92z+E+Z/BNyfaEuRu+YUPsx+9qS+s0xybs=
ganti 160 diatas dengan baris yang ditampilkan oleh error SSH.
1. Cara Manual
Dengan cara manual menghapus baris tersebut, kita akan menggunakan sed
, formatnya
sed -i BARISd FILE
jadi akan saya gunakan
sed -i 160d /home/tommy/.ssh/known_hosts
2. ssh-keygen
Sebenarnya caranya sama dengan manual, sama-sama menghapus baris file yang bermasalah, formatnya
ssh-keygen -R [nama domain atau IP]
jadi saya gunakan
ssh-keygen -R 192.168.1.1
3. Nonaktifkan Key Checking
Cara yang lain adalah dengan menonaktifkan key checking, cara ini sangat tidak direkomendasikan, karena bila terjadi sesuatu pada server tidak akan ada notifikasi. Formatnya adalah
ssh -o "StrictHostKeyChecking=no" [nama domain atau IP]
jadi saya gunakan
ssh -o "StrictHostKeyChecking=no" 192.168.1.1
Login Ulang
Sekarang login ulang ke server untuk menyimpan key yang baru, ini sama seperti anda pertama kali login
$ ssh root@192.168.1.1 The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. ECDSA key fingerprint is SHA256:EVKTI8rrGbIYimZq8p8payT0Y06BTMH3YZW/KZzKGW0. Are you sure you want to continue connecting (yes/no/[fingerprint])?
ketik yes, lalu tekan enter
terima kasih. …. ini yang dibetulin komputer laptop windows nya?? atau linux nya?
Windowsnya