Ini adalah masalah sederhana yang kita semua hadapi dan mungkin diselesaikan secara manual tanpa banyak berpikir.
Saat server berubah, disiapkan kembali, atau alamat IP dialokasikan kembali, kami menerima pesan verifikasi host SSH di bawah ini. Saya tertarik merampingkan alur kerja untuk menyelesaikan kesalahan identifikasi ssh ini.
Diberikan pesan berikut, saya biasanya vi /root/.ssh/known_hosts +434
dan menghapus ( dd
) baris yang menyinggung.
Saya telah melihat pengembang / pengguna di organisasi lain menghapus seluruh known_hosts
file mereka karena frustrasi dalam melihat pesan ini. Meskipun saya tidak melangkah sejauh itu, saya tahu ada cara yang lebih elegan untuk menangani ini.
Kiat?
[root@xt ~]# ssh las-db1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
ed:86:a2:c4:cd:9b:c5:7a:b1:2b:cc:42:15:76:8c:56.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:434
RSA host key for las-db1 has changed and you have requested strict checking.
Host key verification failed.
Jawaban:
Anda dapat menggunakan
ssh-keygen
perintah untuk menghapus entri tertentu dengan host:Jika Anda tidak memiliki perintah itu, Anda selalu dapat menggunakan sed:
sumber
ssh-keygen
perintah. Baik!/etc/ssh/known_hosts
file di jaringan Anda dengan kunci host yang sesuai (dikelola dengan boneka, dll.), atau Anda mengisi file ~ / .ssh / known_hosts pribadi Anda (untuk melakukan salah satu dari ini, Anda dapat menjalankanssh-keyscan
lebih dari barang yang dikenal / aman yang diketahui koneksi). Kecuali itu (dan dengan asumsi Anda peduli sama sekali tentang keamanan) KumpulanUserKnownHostsFile=/dev/null
danStrictHostKeyChecking=no
di Anda~/.ssh/config file
(atau lulus pilihan untuk ssh dengan-o
)Sebagai pengguna boneka, metode saya untuk menyelesaikan ini adalah membuat server boneka saya mengumpulkan kunci host SSH saya dan menerbitkannya ke semua sistem saya yang membuat koneksi SSH.
Dengan cara ini saya tidak perlu khawatir untuk menghapusnya. Sembilan puluh sembilan persen dari waktu boneka telah berjalan dan memperbarui kunci untuk saya karena saya memiliki agen saya berjalan setiap tiga puluh menit. Pengecualian untuk saya sangat jarang, dan jadi saya tidak keberatan mengedit cepat dari sistem yang dikenal luas jika saya tidak mau menunggu.
sumber
Saya ingin menambahkan saran yang dapat membantu Anda dalam kasus yang sangat spesifik di mana keamanan kurang diperhatikan.
Saya memiliki lingkungan lab dengan mesin yang sering diinstal ulang. Setiap kali itu terjadi, kunci host baru dibuat (saya mungkin bisa menyimpan kunci host di suatu tempat dan mengaturnya dalam skrip post-install).
Karena keamanan bukan masalah bagi saya di lingkungan lab ini, dan kunci sering berubah, saya memiliki yang berikut dalam file .ssh / config saya:
Ini memastikan bahwa menghubungkan ke mesin lab saya tidak akan pernah menyebabkan kesalahan itu lagi dan klien ssh saya hanya akan terhubung tanpa memeriksa kunci host.
Ini adalah sesuatu yang harus Anda lakukan hanya jika keamanan sama sekali tidak menjadi perhatian Anda, karena ini menempatkan Anda pada posisi yang rentan untuk serangan pria di tengah.
sumber
Menurut catatan rilis openssh 5.6 , Anda tidak perlu menggunakan kunci host lagi:
Peringatan : Saya belum pernah mendengar ada orang yang menggunakan fitur ini dalam produksi sejauh ini. Gunakan dengan risiko Anda sendiri (tapi saya percaya pengembang openssh cukup paranoid untuk tidak merilis fitur pembunuh tanpa banyak pengujian dan audit kode).
sumber
SSHFP DNS ResourceRecord dapat membantu tergantung pada seberapa banyak klien ssh Anda memanfaatkannya. Simpan semua sidik jari kunci publik ssh Anda di atas sana dengan nama host.
Terapkan DNSSEC atau DNS melalui SSL sebelumnya.
http://www.ietf.org/rfc/rfc4255.txt
FreeIPA.org menangani manajemen kunci host dan pengguna serta Sertifikat PKI. Itu juga secara otomatis mengunggah catatan DNS SSHFP ketika kunci baru dibuat.
http://docs.fedoraproject.org/en-US/Fedora/17/html/FreeIPA_Guide/host-keys.html
sumber