Saya telah menulis skrip utilitas kecil ini:
for h in $SERVER_LIST; do ssh $h "uptime"; done
Ketika server baru ditambahkan ke $SERVER_LIST
, skrip dihentikan dengan:
The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?
Saya sudah mencoba yes
:
for h in $SERVER_LIST; do yes | ssh $h "uptime"; done
tanpa keberuntungan.
Apakah ada cara untuk parametrize ssh
untuk secara otomatis menerima kunci baru?
yes
menampilkan "y", Anda mungkin lebih beruntungfor h in $SERVER_LIST; do yes yes | ssh $h "uptime"; done
(perhatikan tambahan ya, yang memberi tahu ya apa yang harus dikatakan daripada "y" ").Jawaban:
Gunakan opsi StrictHostKeyChecking, misalnya:
Opsi ini juga dapat ditambahkan ke ~ / .ssh / config, misal:
Perhatikan bahwa ketika kunci host telah berubah, Anda akan mendapatkan peringatan, bahkan dengan opsi ini:
Jika host Anda tidak sering diinstal ulang, Anda bisa membuatnya kurang aman (tetapi lebih nyaman untuk kunci host yang sering berubah) dengan
-oUserKnownHostsFile=/dev/null
opsi. Ini membuang semua kunci host yang diterima sehingga tidak akan pernah menghasilkan peringatan.Dengan 18,04, ada kemungkinan baru:
StrictHostKeyChecking=accept-new
. Dariman 5 ssh_config
:sumber
ssh-keyscan
lebih disukai, jika tersedia di sistem Anda.ssh-keyscan
pendekatannya lebih waras. Untuk mesin virtual lokal dan host lain di jaringan tepercaya dengan alamat IP dinamis / digunakan kembali, pendekatan yang dijelaskan cukup baik.ssh-keyscan
Solusi ini hanya rentan terhadap serangan man-in-the-middle saat satu kalissh-keyscan
dijalankan. The-oStrictHostKeyChecking=no
solusi adalah rentan terhadap serangan man-in-the-middle setiap kalissh
sedang dijalankan.Anda dapat menggunakan perintah berikut untuk menambahkan sidik jari untuk server ke hosting Anda yang dikenal
CATATAN: Ganti <ip-address> dan <hostname> dengan IP dan dns nama server yang ingin Anda tambahkan.
Satu-satunya masalah dengan ini adalah bahwa Anda akan berakhir dengan beberapa server di hosting yang dikenal dua kali. Ini bukan masalah besar, hanya menyebutkan. Untuk memastikan tidak ada duplikat, Anda dapat menghapus semua server terlebih dahulu dengan menjalankan yang berikut ini:
Jadi Anda bisa lari:
Satu hal yang perlu diingat ketika menghapus hanya untuk menambahkan kembali, Anda pada dasarnya menghapus keamanan memverifikasi sidik jari. Jadi, Anda pasti tidak ingin menjalankan skrip ini sebelum setiap eksekusi skrip utilitas Anda.
sumber
-H
hash nama host dan alamat.Saya agak terlambat dengan respons ini, tetapi cara yang masuk akal adalah dengan melakukan ssh-keyscan pada mesin baru sebelum Anda menjalankan pengumpulan uptime.
Menonaktifkan pemeriksaan kewarasan demi kenyamanan terdengar seperti rencana yang buruk, bahkan jika Anda berpikir Anda benar-benar mengendalikan lingkungan.
sumber
StrictHostKeyChecking no
Untuk menambahkan daftar server secara otomatis yang dapat kita lakukan di bawah:
Tambahkan server IP dalam daftar server file
IP harus ditambahkan dalam format di bawah ini.
Output dari
cat servers-list
Ubah IP di atas dengan mengganti milik Anda.
Perintah di bawah ini akan menambahkan semua server dari daftar.
sumber