Saya membangun beberapa mesin virtual selama beberapa minggu terakhir. Masalahnya adalah, .ssh/known_hosts
memberi saya Pria di tengah peringatan. Ini terjadi karena sidik jari lain dikaitkan dengan IP mesin virtual.
.ssh/known_hosts
Namun, dalam file tersebut, saya tidak menemukan catatan yang terkait dengan IP, hanya dua string yang mirip kunci dan "ssh-rsa".
Adakah yang punya ide tentang cara menghapus kunci lama known_hosts
?
ssh
hosts
openssh
man-in-the-middle
Adam Matan
sumber
sumber
HashKnownHosts yes
ditetapkan.Jawaban:
Akan memodifikasi file ~ / .ssh / known_hosts: 6, menghapus baris ke-6.
Menurut pendapat saya, menggunakan
ssh-keygen -R
adalah solusi yang lebih baik untuk pengguna daya openssh, sementara admin Linux reguler Anda akan melakukan yang lebih baik untuk menjaga keterampilannya tetap segar dengan menggunakan metode di atas.sumber
/etc/sudoers
tanpavisudo
. Jika Anda ingin mempertajamsed
keterampilan Anda , silakan dan lakukan itu tanpa mengacaukan sistem Anda.ssh-keygen -R
dansed -i {line}d
cukup "resmi", dan keduanya akan berfungsi untuk masa mendatang. Util ssh-keygen memungkinkan penghapusan berdasarkan nomor baris, keduanya sangat dapat diterima (karena, nomor baris sering lebih mudah untuk ditangani, dan lebih sedikit rawan kesalahan, daripada berurusan dengan nama host pusat data modern).man ssh-keygen
menyebutkanssh-keygen -R hostname
Anda baru saja mengatakanssh-keygen -R
tanpa nama host yang ditentukan, dan Anda belum menjelaskan apa yang Anda maksud dengan itu.Solusi paling sederhana adalah:
ssh akan membuat ulang file lagi, tetapi Anda kehilangan kunci untuk memeriksa host lain!
Atau, Anda dapat menggunakan:
Atau pesan ssh "man-in-the-middle" harus menunjukkan baris mana dari file known_hosts yang memiliki sidik jari yang menyinggung. Edit file, lompat ke baris itu dan hapus.
sumber
ssh-keygen -R hostname
akan bekerja juga.ssh-keygen
pilihan yang ditambahkan karena komentar, tapi tanpa penjelasan. Saya pikir jawaban ini tidak pantas mendapatkan banyak pujian.Ada saklar ssh-keygen (
-R
) untuk ini.man ssh-keygen
berbunyi:sumber
[localhost]:port
, menggunakan kurung karena saya menggunakan port khusus kurasa = /. Seperti yang dikatakan orang lain, saya juga akan menggunakan pendekatan pengecekan kunci SSH untuk pengembangan sistem sementara / pengujian saya.ssh-keyscan -H my.ssh.server.example.com >> ~/.ssh/known_hosts;
Peringatan akan memberi tahu Anda baris persis di file host yang dikenal.
Ini sebuah contoh:
Lihat
/home/user/.ssh/known_hosts:6
bagian itu? Ini menentukan file dan nomor baris.sumber
Anda perlu menjalankan perintah berikut untuk menyingkirkan masalah ini. Buka terminal dan ketik perintah berikut:
Untuk semua contoh di bawah ini, ganti saja nilai setelah -R
sumber
ssh-keygen -R
daripada jawaban lain sejauh ini. Ini menunjukkan dengan tepat apa yang dapat Anda tulis setelah-R
. Jadi jawaban ini bermanfaat, meskipun itu bukan jawaban yang sama sekali baru.Anda juga dapat menginstruksikan ssh untuk tidak memeriksa file known_hosts menggunakan flag UserKnownHostsFile dan StrictHostKeyChecking.
Misalnya:
Untuk kemudahan penggunaan Anda dapat alias ini:
Sekarang Anda bisa boldsh kapan saja Anda yakin mempercayai sertifikat server.
sumber
~/.ssh/known_hosts
terkini? Mengapa tidak langsung saja menggunakannyatelnet
? "kapan pun Anda yakin" - jika Anda pernah yakin, maka Anda tidak tahu apa itu serangan MITM dan Anda mungkin harus meluangkan waktu membaca beberapa literatur yang bagus.Semua jawaban baik, tetapi untuk SSH pro nyata kami kehilangan informasi cara menghapus ssh signature dengan nomor port.
Perintah hapus tanda tangan host SSH sederhana:
Hapus kunci ssh kompleks, misalnya Anda terhubung ke ssh pada port non standar 222:
dan Anda mendapatkan peringatan, dan untuk menghapus ini, Anda harus menggunakan nomor porta tanda kurung siku:
Semoga ini bisa membantu bagi pengguna konfigurasi non-standar.
sumber
Berikut adalah metode menggunakan Ex editor:
di mana 6 adalah nomor baris Anda yang disebutkan dalam pesan peringatan. Seperti ini:
Secara umum, itu disarankan untuk menggunakan
ex
untuk mengedit file non-interaktif , bukansed
, yang lebih merupakan S tream ED itor dan yang-i
parameter yang merupakan ekstensi non-standar FreeBSD.sumber
Entri untuk nama host atau ip harus di kolom pertama. Peringatan juga harus mencantumkan nomor baris di mana kunci yang menyinggung berada.
sumber
Anda juga dapat menghapus satu baris dari host yang dikenal dengan mis. Rmknownhost 111 (111 adalah baris yang harus dihapus):
Simpan ini seperti
rmknownhost
dalam folder dari folder AndaPATH
.sumber
sshdel() { sed -i "${@}d" ~/.ssh/known_hosts; }
dan panggil dengansshdel [line number]
. tidak ada ruby, tidak ada biner, tidak ada kekhawatiran.Ini adalah file teks. Anda dapat dengan mudah mengedit dengan vi (m) dan cukup menghapus baris yang dimaksud (dd), dan menyimpan file (wq). Tetapi jika ada perintah khusus untuk menghapus host, itu mungkin metode yang paling aman.
sumber