Solusi 1:
Anda dapat menggunakan ssh -o StrictHostKeyChecking=no
untuk menonaktifkan pemeriksaan known_hosts
sesaat. Tapi saya akan menyarankan hal ini. Anda harus benar-benar memeriksa mengapa kunci host berubah.
Opsi lainnya adalah menambahkan entri khusus ke ~/.ssh/config
Anda untuk tuan rumah yang bersangkutan. Ini mungkin pendekatan yang valid jika Anda memiliki host tertentu yang menghasilkan kunci host baru setiap kali reboot dan di-reboot untuk alasan yang valid beberapa kali sehari.
Host <your problematic host>
StrictHostKeyChecking no
Solusi 2:
Untuk sepenuhnya mengabaikan file host yang Anda kenal di lingkungan POSIX, atur GlobalKnownHostsFile
dan UserKnownHostsFile
opsi untuk /dev/null
:
ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null [email protected]
Mengatur StrictHostKeyChecking=no
opsi akan memungkinkan Anda untuk terhubung tetapi SSH akan tetap menampilkan peringatan :
ssh -o StrictHostKeyChecking=no [email protected]
Seperti yang telah dicatat orang lain, mungkin lebih baik untuk mengatasi masalah yang mendasarinya. Anda dapat mempertimbangkan autentikasi sertifikat SSH untuk memverifikasi host, misalnya.
Solusi 3:
Jika Anda telah menginstal ulang server dan oleh karena itu Identifikasi telah berubah, Anda sebaiknya menghapus baris 155 yang ditentukan dari /Users/alexus/.ssh/known_hosts
dan lanjutkan.
Jika Anda beralih di antara jaringan pribadi yang berbeda, Anda harus menggunakan nama host untuk terhubung, karena klien ssh juga akan menyimpan kunci tergantung pada nama host. Tambahkan sesuatu seperti ini ke /etc/hosts
Anda :
10.52.11.171 server1
10.52.11.171 server2
lalu gunakan ssh server1
saat terhubung ke subnet 1 dan ssh server2
ketika terhubung ke subnet2. Dengan cara ini, kedua server dapat memiliki kunci host yang berbeda.
Solusi 4:
-o StrictHostKeyChecking=no
hanya berfungsi jika host belum ada di file known_hosts.
Saya pikir ini lebih bersih (tanpa peringatan), jika Anda mengharapkan kunci host berubah mungkin karena kloning vm, untuk memaksa mengabaikan host semacam itu seperti ini:
# Handle possible SSH key changes
host_key=$(ssh-keyscan -t rsa ${host_ip})
grep "${host_key}" ~/.ssh/known_hosts >/dev/null || {
ssh-keygen -R ${host_ip}
echo ${host_key} >> ~/.ssh/known_hosts
}
# connect as normal way
ssh [email protected]${host_ip} "hostname"
Solusi 5:
Beberapa orang mengatakan itu tidak benar, Anda tidak boleh melakukan ini dan seterusnya, tetapi saya memerlukan ini juga untuk menguji beberapa perangkat yang disematkan berulang kali. Anda perlu menonaktifkan StrictHostKeyChecking=no
, ini benar, tetapi juga mereset file host yang dikenal ke /dev/null
. Berikut contoh dengan autologin dan ps
di perangkat jarak jauh.
sshpass -p pass ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] 'ps ax'