Saya mendapat pesan ini hari ini ketika mencoba masuk ke server saya. Apa yang harus saya lakukan? Apa yang sedang terjadi?
$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
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:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
Jawaban:
Apakah Anda baru saja menginstal ulang OS di server Anda atau yang seperti itu? Itu akan menyebabkan ini.
Untuk memperbaikinya: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/
Solusi # 1: Hapus kunci menggunakan ssh-keygen
Gunakan
-R
opsi untuk menghapus semua kunci yang dimiliki nama host dari file known_hosts. Opsi ini berguna untuk menghapus host hash. Jika nama host jarak jauh Anda adalah server.example.com, masukkan:Sekarang, Anda dapat terhubung ke host tanpa masalah.
Solusi # 2: Tambahkan kunci host yang benar di
/home/user/.ssh/known_hosts
Tidak perlu menghapus seluruh file known_hosts, cukup baris yang menyinggung dalam file itu. Misalnya jika Anda memiliki 3 server sebagai berikut.
Untuk menghapus server ke-2 (myserver.com), buka file:
Dan tekan perintah dd untuk menghapus baris. Simpan dan tutup file. Atau gunakan yang berikut
Sekarang pergi ke baris # 2, ketikkan perintah berikut
Sekarang hapus baris dengan dd dan keluar:
Atau Anda dapat menggunakan perintah sed sebagai berikut untuk menghapus kunci yang menyinggung di baris # 44:
Solusi 3: Hapus saja file known_hosts Jika Anda hanya memiliki satu ssh server
Coba sambungkan lagi dengan ssh
Sekarang Anda seharusnya bisa menghubungkan server Anda melalui ssh:
Selanjutnya, Anda akan mendapatkan prompt baru untuk menambahkan kunci
~/.ssh/known_hosts
sebagai berikut:sumber
Dari apa yang bisa saya katakan, semua jawaban ini adalah tentang menekan peringatan itu, bukannya menanganinya. Singkatnya, peringatan itu memberi tahu Anda bahwa server tidak terlihat seperti dulu; lihat https://en.wikipedia.org/wiki/Man_in_the_middle_attack mengapa ini bisa berbahaya.
Baca
man ssh
, terutama bagian ini:Agar aman, Anda (atau seseorang yang Anda percayai) harus menjalankan perintah ini terlebih dahulu di server yang Anda sambungkan. Ini akan memberi Anda semacam sidik jari seperti yang diberikan dalam peringatan dalam pertanyaan. Tentu saja, sering kali Anda tidak memiliki info ini, tetapi jika Anda memiliki alasan untuk mencurigai ada sesuatu, menjalankan perintah itu adalah cara untuk memeriksa apakah tanda tangan server telah benar-benar berubah, atau jika mungkin ada sesuatu yang mencurigakan sedang terjadi.
sumber
ssh -o FingerprintHash=md5 example.org
Saya menghadapi masalah yang sama, dan jika Anda tidak ingin menghapus seluruh
known_hosts
file, Anda dapat menjalankan perintah berikut:ssh-keygen -R 10.10.10.69
Tidak ada masalah dengan menghapus known_hosts. Anda hanya perlu menambahkan setiap server yang Anda hubungkan, ke daftar setiap kali Anda terhubung. Mungkin mengacaukan skrip Anda juga, karena tuan rumah belum dipercaya. Peringatan terjadi ketika tanda tangan host (komputer yang Anda coba sambungkan ke kunci baru yang dihasilkan, biasanya karena menginstal ulang, atau rotasi tombol.)
sumber
Jika Anda yakin bahwa peringatan itu positif palsu, Anda dapat menghapus / root / ssh / known_hosts Anda untuk memulai verifikasi baru.
sumber
Jika Anda baru saja menginstal ulang server, atau mengubah kunci host, mungkin aman untuk menghapus baris 8 dari file ~ / .ssh / known_hosts Anda dan menambahkan kembali server (dengan ssh'ing untuk itu, dan menjawab "ya "ketika meminta verifikasi kunci)
sumber
Karena server Anda berada di jaringan lokal, Anda bisa cukup percaya diri.
Jika Anda menginstal ulang sistem Anda, ini normal, tetapi alih-alih menghapus file known_hosts Anda, saya akan menyarankan untuk melakukannya
echo "" > ~/.ssh/known_hosts
sumber
ssh -q melakukan trik ini juga.
sumber
Salin baris ini, tetapi masukkan nama pengguna dan nama host / IP untuk
user
danremote-server
:Sebagai contoh:
Dan tempel di terminal lokal Anda dan jalankan. Ini berhasil untuk saya.
sumber
Pada simpul klien tempat Anda mengeluarkan ssh,
Hapus semua baris yang dimulai dengan alamat IP yang berada di jaringan yang sama dengan IP yang Anda coba ssh. Ini akan memaksa simpul klien untuk menambahkan (ECDSA) permenently ke daftar host yang dikenal.
sumber