GNU/Linux >> Belajar Linux >  >> Linux

Cara menonaktifkan pemeriksaan kunci host SSH di Linux

Komunikasi SSH diamankan menggunakan kriptografi kunci publik. Ketika pengguna terhubung ke server SSH menggunakan klien SSH untuk pertama kalinya, program SSH menyimpan kunci publik server SSH di direktori home pengguna di dalam file, known_hosts, di folder tersembunyi bernama ~/.ssh/, seperti yang ditunjukkan pada tangkapan layar berikut:

Sekarang, selanjutnya, setiap kali klien ssh terhubung ke server, ia membandingkan kunci publik yang dikirim oleh server dengan kunci publik server yang disimpan dalam file ~/.ssh/known_hosts. Jika kunci publik tidak cocok, klien berasumsi bahwa lalu lintas jaringan sedang dibajak atau server tempat koneksi dibuat tidak sama, dan karenanya klien SSH memutuskan koneksi, seperti yang ditunjukkan di sini:

$ ssh [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3f:1b:f4:bd:c5:aa:c1:1f:bf:4e:2e:cf:53:fa:d8:59.
Please contact your system administrator.
Add correct host key in /home/admin/.ssh/known_hosts to get rid of this message.
Offending key in /home/admin/.ssh/known_hosts:3
RSA host key for 192.168.12.12 has changed and you have requested strict checking.
Host key verification failed.$

Ada beberapa kemungkinan alasan mengapa kunci host jarak jauh berubah. Serangan Man-in-the-Middle hanya satu kemungkinan alasan. Alasan lain yang mungkin termasuk:

  • OpenSSH telah diinstal ulang pada host jarak jauh tetapi, karena alasan apa pun, kunci host asli tidak dipulihkan.
  • Host jarak jauh digantikan secara sah oleh komputer lain.

Kemungkinan juga server diformat ulang atau kunci server diganti karena alasan yang sah. Dalam keadaan seperti itu, pengguna perlu memperbarui file ~/.ssh/known_hosts mereka dengan menghapus kunci lama untuk mengaktifkan masuk ke server.

Jika Anda yakin bahwa ini tidak berbahaya, Anda dapat menggunakan salah satu dari 2 metode di bawah ini untuk mengelabui openSSH agar Anda dapat masuk. Namun berhati-hatilah karena Anda menjadi rentan terhadap serangan man-in-the-middle.

Metode 1 – hapus kunci host dari file ~/.ssh/known_hosts

Metode pertama adalah menghapus host jarak jauh dari file ~/.ssh/known_hosts. Perhatikan bahwa pesan peringatan sudah memberi tahu Anda nomor baris dalam file known_hosts yang sesuai dengan host jarak jauh target. Baris yang menyinggung pada contoh di atas adalah baris 3(“Offending key in /home/admin/.ssh/known_hosts:3”)

Anda dapat menggunakan satu baris berikut untuk menghapus satu baris (baris 3) dari file.

$ sed -i 3d ~/.ssh/known_hosts

Perhatikan bahwa dengan metode di atas, Anda akan diminta untuk mengonfirmasi sidik jari kunci host saat menjalankan ssh untuk masuk.

Metode 2 – Nonaktifkan StrictHostKeyChecking

Metode kedua menggunakan dua parameter openSSH:

  • Pemeriksaan KetatHostKey
  • UserKnownHostsFile

Metode ini menipu SSH dengan mengonfigurasinya untuk menggunakan file known_hosts yang kosong, dan BUKAN untuk meminta Anda mengonfirmasi kunci identitas host jarak jauh.

$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
Warning: Permanently added '192.168.12.12' (RSA) to the list of known hosts.
[email protected]'s password:

Parameter UserKnownHostsFile menentukan file database yang akan digunakan untuk menyimpan kunci host pengguna (defaultnya adalah ~/.ssh/known_hosts). File /dev/null adalah file perangkat sistem khusus yang membuang apa saja dan semua yang tertulis di dalamnya, dan ketika digunakan sebagai file input, segera mengembalikan End Of File.

Dengan mengonfigurasi file perangkat nol sebagai basis data kunci host, SSH tertipu dengan berpikir bahwa klien SSH belum pernah terhubung ke server SSH sebelumnya, dan karenanya tidak akan pernah mengalami kunci host yang tidak cocok. Parameter StrictHostKeyChecking menentukan apakah SSH akan secara otomatis menambahkan kunci host baru ke file database kunci host. Dengan menyetelnya ke no, kunci host secara otomatis ditambahkan, tanpa konfirmasi pengguna, untuk semua koneksi pertama kali. Karena file database kunci nol, semua koneksi dilihat untuk pertama kalinya untuk semua host server SSH. Oleh karena itu, kunci host secara otomatis ditambahkan ke database kunci host tanpa konfirmasi pengguna. Menulis kunci ke file /dev/null akan membuang kunci dan melaporkan keberhasilan.

Dengan menentukan 2 opsi SSH di atas pada baris perintah, Anda dapat melewati pemeriksaan kunci host untuk login SSH tertentu. Jika Anda ingin melewati pemeriksaan kunci host secara permanen, Anda perlu menentukan opsi yang sama di file konfigurasi SSH. Anda dapat mengedit file konfigurasi SSH global (/etc/ssh/ssh_config) jika Anda ingin membuat perubahan permanen untuk semua pengguna.

Jika Anda ingin menargetkan pengguna tertentu, ubah file konfigurasi SSH khusus pengguna (~/.ssh/config). Petunjuk di bawah ini berlaku untuk kedua file. Misalkan Anda ingin melewati pemeriksaan kunci untuk subnet tertentu (192.168.0.0/24).

Tambahkan baris berikut ke awal file konfigurasi SSH.

Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Perhatikan bahwa file konfigurasi harus memiliki baris seperti Host * diikuti oleh satu atau lebih pasangan nilai parameter. Host *berarti akan cocok dengan host mana pun. Pada dasarnya, parameter berikut Host * adalah default umum. Karena nilai pertama yang cocok untuk setiap parameter SSH digunakan, Anda ingin menambahkan parameter spesifik host atau subnet ke awal file.

Sebagai peringatan terakhir, kecuali Anda tahu apa yang Anda lakukan, mungkin yang terbaik adalah mengabaikan pemeriksaan kunci kasus per kasus, daripada membuat perubahan permanen menyeluruh pada file konfigurasi SSH.


Linux
  1. Cara Mengubah Port SSH Di Linux

  2. Cara Mengonfigurasi Otentikasi Berbasis Kunci SSH Di Linux

  3. Cara Mengatur Kunci SSH

  1. Cara Memperbaiki Kunci yang Menyinggung di file ~/.ssh/known_hosts

  2. Cara Mengatur kunci SSH untuk login ssh "tanpa kata sandi" di Linux

  3. Cara kerja SSH Tanpa Kata Sandi di Linux / UNIX

  1. Cara Menghasilkan Kunci SSH di Windows 10

  2. Cara Menonaktifkan Otentikasi Kata Sandi SSH di VPS Linux

  3. Bagaimana cara menonaktifkan tombol keyboard di Linux (Ubuntu)?