Nonaktifkan StrictHostKeyPeriksa di ssh


14

Saya mencoba untuk terhubung ke host Linux menggunakan sshdan mendapatkan kesalahan berikut

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Saya ingin mengganti ini, tetapi sepertinya tidak dapat menemukan kombinasi opsi untuk melakukan ini.

Saya mungkin mengatur StrictHostKeyChecking tahun yang lalu, tetapi tidak ingat caranya.

Saya berkonsultasi man sshyang memberi tahu saya file konfigurasi seluruh sistem /etc/ssh/ssh_configdan default untuk file konfigurasi per-pengguna ~/.ssh/configtidak ada.

EDIT Untuk memperjelas pertanyaan saya, opsinya jelas diatur. Saya sedang berusaha menemukan

  1. Di mana opsi disimpan (saya tidak memiliki file yang disebutkan di halaman manual, yang tampaknya salah).
  2. Cara mengubah opsi.

Saya tidak melihat cara mengatasi masalah yang saya alami (saya tahu saya dapat mengedit file known_hosts, tetapi ini membosankan setiap kali saya mencoba server baru).


Itu /etc/ssh_configmilikku.
sborsky

@sborsky Saya punya ini juga (yang berbeda dari pria itu) tetapi semua opsi dikomentari.
Milliways

Ini berarti default, yang menurut halaman manual adalah ask. Ketika kunci host berubah, ssh client tidak akan terhubung kecuali StrictHostKeyCheckingdiatur ke no. Jika kunci host tidak sering berubah, saya sarankan untuk menghapus kunci host yang satu ini dari Anda ~/.ssh/known_hostsalih-alih mengubah konfigurasi.
sborsky

1
Pertama, Anda harus mencari tahu mengapa itu diubah. Jika Anda tidak mengubahnya, maka itu mungkin serangan MitM, dan tentu saja Anda seharusnya tidak mengizinkan kunci host ini!
Nama Tampilan

catatan samping - setelah menghapus semua catatan untuk host yang diberikan dari .ssh/known_hostssaya terus mendapatkan peringatan sampai saya menemukan baris menyinggung dalam file lain yang disebut .ssh/known_hosts2. rupanya OS X menggunakan keduanya
billynoah

Jawaban:


18

Untuk menonaktifkan pemeriksaan ketat host pada OS X untuk pengguna saat ini, buat atau edit ~ / .ssh / config dan tambahkan baris berikut:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Contoh tipikal untuk host di jaringan lokal Anda adalah:

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

Tergantung pada penggunaan ssh saya, saya tidak menyarankan untuk menonaktifkan kunci host ketat memeriksa semua host.

Jika Anda hanya ingin menghapus entri untuk 10.1.1.20 buka ~ / .ssh / known_hosts dengan editor pilihan Anda dan hapus baris terkait "10.1.1.20 ssh-rsa public-key $ "


Tampaknya juga berfungsi tanpa garis / dev / null.
John2095

6

Anda cukup mencobanya karena tanpa konfigurasi, cukup pada commandline:

ssh -o StrictHostKeyChecking=no hostname

Tapi saya pikir itu tidak semua yang Anda butuhkan. Jika Anda ingin mengabaikan semua pemeriksaan hostkey, Anda perlu mengatur known_hostsfile Anda /dev/nullagar tidak ada yang disimpan:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

atau di /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

Yang ke-1 masih tidak memungkinkan saya untuk terhubung, tetapi ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamemelakukannya. Saya masih tidak dapat menemukan WHERE StrictHostKeyChecking sudah diatur!
Milliways

Standarnya adalah "ya" sehingga tidak harus ditetapkan di mana pun untuk berlaku.
Jakuje

Dokumentasi menyatakan defaultnya untuk ya
Milliways

memilih sebagai solusi akan membantu jika itu membantu menyelesaikan masalah Anda;)
Jakuje
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.