Post

Cara mengatasi gagal SSH : REMOTE HOST IDENTIFICATION HAS CHANGED!

SSH atau Secure Shell adalah salah satu cara yang biasa digunakan untuk mengakses server atau vps dari jarak jauh (remote) dengan aman melalui perintah berbasis CLI. Hal ini dimaksudkan agar sebuah keamanan ketika akses server dapat dilanjutkan dan bebas dari penyadapan secara aman.

Setelah melakukan akses SSH dan terkadang terdapat pesan error kurang lebih seperti berikut ini :

❙~❱✘≻ ssh dragon
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:UTq3gyBmzMvV83NSXeLkbTfFoFp5wtG/yRz2wZWnSx4.
Please contact your system administrator.
Add correct host key in /home/masdzub/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/masdzub/.ssh/known_hosts:58
ECDSA host key for 128.199.190.240 has changed and you have requested strict checking.
Host key verification failed.

Penyebab dari error tersebut bisa dikarenakan sebelumnya sudah pernah melakukan akses remote akses ssh ke IP tersebut, namun untuk VPS / server tersebut telah dilakukan install ulang OS pada vps / server. Sebelum permasalah ini bisa diselesaikan tidak akan bisa masuk atau akses server via SSH.

Cara mengatasi

Untuk mengatasinya terdapat beberapa cara, untuk yang saat ini kita bahas ada 3. Untuk kurang lebih seperti ini :

1. Menghapus Manual

Untuk cara yang pertama dengan cara menghapus manual. Dari pesan error diatas sudah mendapatkan clue untuk mengatasinya. Untuk caranya seperti berikut ini :

  • Didalam error tersebut sudah memberitahu lokasi dari offending ECDSA key yang ada di known_hosts. Dalam pesan contoh pesan error saya kurang lebih seperti ini Offending ECDSA key in /home/masdzub/.ssh/known_hosts:58 hal ini menandakan berada di file “/home/masdzub/.ssh/known_hosts` baris 58.
  • Buka file known_hosts menggunakan text editor.
  • Cari baris ke 58 lalu hapus baris tersebut, kemudian simpan.
  • Lalu coba kembali untuk akses SSH nya.

Dengan cara menghapus baris tersebut, berarti SSH client tidak mempunyai ECDSA key fingerprint lagi, sehingga dari system ssh akan menanyakan kembali untuk memverifikasi authentikasi ke server saat akan terkoneksi kembali. Dan saat sudah memiliki ECDSA key fingerprint yang baru di known_hosts dam peringatan tersebut akan hilang.

2. Menggunakan ssh-keygen

Untuk solusi yang lain dapat menggunakan ssh-keygen untuk menghapus key yang ada di file known_hosts. Untuk menggunakannya bisa menjalankan perintah berikut ini :

$ ssh-keygen -R [hostname atau IP]

Untuk contoh menggunakan IP :

$ ssh-keygen -R 128.199.190.240
# Host 128.199.190.240 found: line 58
/home/masdzub/.ssh/known_hosts updated.
Original contents retained as /home/masdzub/.ssh/known_hosts.old

Untuk contoh menggunakan hostname :

$ ssh-keygen -R dragon.masdzub.com
# Host dragon.masdzub.com found: line 58
/home/masdzub/.ssh/known_hosts updated.
Original contents retained as /home/masdzub/.ssh/known_hosts.old

Cara ini lebih efektif bilamana teman-teman tidak ingin mengedit secara manual di known_hosts. Selain itu cara ini lebih mudah juga jika menggunakan banyak hostname atau IP address. Selain itu cara ini juga akan membuat file baru dengan nama known_hosts.old sebagai backup.

3. Rubah nama file known_hosts

Untuk cara ini dilakukan jika kedua cara diatas masih belum berhasil, sebelum merubah nama file known_hosts pastikan untuk sudah mengetahui lokasi filenya. Seperti yang ada di error atas, lokasi filenya ada di /home/masdzub/.ssh/known_hosts, jadi kita perlu masuk ke /home/masdzub/.ssh/, untuk stepnya kurang lebih seperti ini :

  • Masuk ke /home/masdzub/.ssh/ dengan cara :
$ cd /home/masdzub/.ssh/
  • Memastikan untuk file known_hosts ada dengan cara :
$ ls
config             id_rsa_sg.bak        id_rsa.pub
config.bak         id_rsa_sg.pub        known_hosts
  • Merubah nama file nya menjadi apapun hal yang lain, dengan cara :
$ mv known_hosts known_hosts.bak

Cara ini akan menghilangkan semua ECDSA key fingerprint. Sehingga ketika akses server / vps lagi, harus melakukan verifikasi ulang.

Kesimpulan

Peringatan WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! bukanlah sebuah masalah besar, hal ini dikarerenakan IP atau Hostname dari VPS yang sudah diakses sebelumnya sudah tersimpan di known_hosts, namun terdapat ketidakcocokan dengan VPS yang sudah di install ulang tersebut.

This post is licensed under CC BY 4.0 by the author.