Paksa ssh untuk tidak mencetak peringatan "Identifikasi host jarak jauh telah berubah"

23

Apakah ada cara untuk menghindari ssh mencetak pesan peringatan seperti ini?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

Meskipun identitas host jarak jauh telah berubah tetapi saya tahu itu baik-baik saja dan hanya ingin menyingkirkan peringatan ini.

coffeMug
sumber

Jawaban:

16

Empat cara:

Untuk hanya menghubungkan sekali ke sistem dengan kunci host baru, tanpa harus menjawab pertanyaan, hubungkan dengan opsi berikut:

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

Untuk menghapus peringatan untuk semua sistem secara permanen , edit ~/.ssh/configfile Anda untuk menambahkan baris berikut:

Host *
StrictHostKeyChecking no

Untuk menghapus secara permanen semua peringatan untuk server yang satu ini , edit ~/.ssh/configfile Anda dan tambahkan baris berikut:

Host this.one.hostname
StrictHostKeyChecking no  

Untuk menghapus peringatan untuk perubahan yang satu ini untuk server yang satu ini, hapus kunci host untuk server tersebut ~/.ssh/known_hosts. Lain kali Anda terhubung, kunci host baru akan ditambahkan.

Jenny D
sumber
Pada opsi kedua konfigurasi itu harus dilakukan di sisi server yang kita hubungkan ke kanan?
coffeMug
Tidak, itu milik Anda sendiri $HOME/.ssh/configyang penting dalam pilihan kedua dan ketiga.
Jenny D
Ini masih mencetak peringatan untuk saya (meskipun itu memungkinkan koneksi).
Michael Mior
24

Tambahkan ini ke ~ / .ssh / config Anda:

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 
Elijah Lynn
sumber
3
MOD UP - hanya satu yang benar-benar menjawab pertanyaan - ini adalah satu-satunya jawaban untuk tidak hanya bekerja, tapi SUPPRESS the PERINGATAN.
Brad
Ups, tampaknya pengguna shell ikan tidak akan dapat menggunakan pelengkapan otomatis ssh yang bagus untuk host yang terhubung sebelumnya jika mereka menempatkan UserKnownHostFile ke / dev / null. Pengguna ikan dan mungkin semua orang seharusnya tidak mengaturnya.
Elijah Lynn
Anda lebih baik membuat ssh0skrip / alias / fungsi untuk ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERRORdan menggunakannya secara eksplisit alih-alih memasukkan opsi-opsi tersebut ~/.ssh/config. Anda mungkin lupa tentang mereka dan kemudian bertanya-tanya mengapa cek tidak bekerja ketika Anda hanya ingin mereka bekerja.
Paman Billy
20

Anda dapat mengambil garis untuk host tersebut dari ~/.ssh/known_host(setiap host memiliki garis sebagai entri di sana).

Alternatif adalah menggunakan:

ssh -q -o "StrictHostKeyChecking no" ....

Hanya menggunakan diam -q- sshdiam akan gagal.

Timo
sumber
9

Tidak menambahkan kunci host ke $ HOME / .ssh / known_hosts default kadang-kadang diinginkan.

Gunakan -o UserKnownHostsFile=/dev/nullsebagai tambahan -qdan -o StrictHostKeyChecking=nountuk menjaga agar diketahui host tidak berantakan. Berikut ini sebuah contoh:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q [email protected]
Cowok Pintar
sumber
2

Saran alternatif adalah mengidentifikasi mengapa kunci host berubah, dan membuatnya berhenti melakukan itu.

Sebagai contoh: jika Anda membangun host di wadah atau melalui sistem penyediaan, pastikan bahwa ini secara konsisten menggunakan kunci host yang dikenal per instance.

Saya menyadari ini tidak selalu mungkin, dan host dapat dikelola di luar lingkup kendali Anda, tetapi peringatan hostkey itu ada karena suatu alasan dan signifikan. Mengurangi jumlah pengecualian adalah Good Thing.

Kalau tidak, saya memilih StrictHostKeyChecking Tidak di Anda ~/.ssh/config untuk host tertentu yang dimaksud.

Edward Morbius
sumber