Saya punya server (anggap ipnya abcd) yang memungkinkan pengguna untuk masuk melalui ssh. Sekarang saya ingin mengubah mesin fisik agar ip tetap sama. Sehingga mesin baru masih diakses oleh pengguna seperti ini
$ ssh abcd
Masalahnya adalah, setiap kali satu pengguna mencoba masuk, ia mendapatkan kesalahan ketidakcocokan ssh-key berikut.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @ PERINGATAN: IDENTIFIKASI HOST REMOTE TELAH BERUBAH! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ MUNGKIN SESUATU YANG MELAKUKAN SESUATU SESUATU NASTY! Seseorang bisa menguping kamu sekarang (serangan man-in-the-middle)! Mungkin juga kunci host RSA baru saja diubah. Sidik jari untuk kunci RSA yang dikirim oleh host jarak jauh adalah 02: dc: c6: 18: 1b: 34: b7: 1d: fa: 90: ab: e1: 95: 48: 69: 84. Silakan hubungi administrator sistem Anda. Tambahkan kunci host yang benar di /home/user/.ssh/known_hosts untuk menghilangkan pesan ini. Masukkan kunci di /home/user/.ssh/known_hosts:37 Kunci host RSA untuk alumni telah berubah dan Anda telah meminta pemeriksaan ketat. Verifikasi kunci host gagal.
Saya tahu bahwa pengguna dapat menghapus baris # 37 dari file ~ / .ssh / known_hosts dan lain kali dia akan mendapatkan prompt ya / tidak. Apa yang saya inginkan adalah bahwa pengguna harus tetap tidak menyadari hal penggantian seluruh mesin ini dan hanya mendapatkan prompt untuk kata sandi.
Bagaimana cara melakukannya?
ssh
perlindungan satu-satunya terhadap manusia di serangan tengah dan dapat mengakibatkan Anda mengirimkan kata sandi Anda langsung ke penyerang alih-alih mesin yang dimaksud? Kecuali Anda tahu pasti bahwa Anda kebal terhadap serangan aktif (misalnya, Anda berada di jaringan internal aman yang sama dengan mesin target) ini merusakssh
model keamanan.Jawaban:
Seperti yang disebutkan Ethabell , Anda dapat menyalin kunci host saat ini ke server baru.
Anda dapat menemukan kunci host Anda dengan membuka
sshd_config
file Anda (Pada kotak Ubuntu saya 12,04 nya/etc/ssh/sshd_config
). Dalam file konfigurasi, cariHostKey
entri. Entri ini akan memberi tahu Anda di mana file kunci host berada. Anda harus dapat menyalin file-file ini ke server baru dan memperbarui server barusshd_config
untuk menunjuk ke kunci yang disalin (atau hanya menimpa file yang sudah ada di server baru).Perhatikan juga bagian ini dari
sshd_config
halaman manual, khususnya bagian tentang izin:sumber
Jika Anda memiliki kunci host asli, Anda dapat memulihkannya dan ini akan menghentikan kesalahan.
Atau, Anda bisa mematikan StrictHostKeyChecking di file konfigurasi sshd Anda.
... Melakukan ini, bagaimanapun, adalah ide yang sangat buruk. Jika ada cara bagi Anda untuk hanya berjalan
ssh-keygen -R server.example.com
di mesin klien, itu akan menjadi cara terbaik - karena mematikan pemeriksaan kunci host seperti mengatakan, "Hei. Serang aku." Saya mendapatkan ketidakjelasan yang diinginkan saat segala sesuatu berubah, tetapi keamanan harus menjadi prioritas # 1 daripada menutupi perubahan.sumber
Anda bisa mencobanya seperti ini
Perhatikan bahwa jika folder .ssh belum ada, perintah di atas akan gagal. Selain itu, mungkin lebih baik saat membuat file untuk mengatur izin seminimal mungkin (pada dasarnya baca-tulis hanya untuk pemilik). Ini adalah perintah yang lebih maju:
Untuk informasi lebih lanjut tentang masalah ini, Anda harus membuka situs web ini: Kesalahan Perubahan Kunci Host SSH
sumber