Jawaban:
Jika Anda menginginkan perilaku ini karena Anda bekerja dengan server cloud (AWS EC2, Rackspace CloudServers dll.) Atau Anda terus-menerus menyediakan gambar baru di Vagrant, Anda mungkin ingin memperbarui konfigurasi SSH Anda alih-alih menambahkan alias bash atau lebih banyak opsi pada garis komando.
Pertimbangkan untuk menambahkan sesuatu seperti:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
-o "UserKnownHostsFile /dev/null"
harus bekerja.
grep -v "^Warning: Permanently added"
grep
akan menggabungkan stdout dan stderr; juga status keluar dapat berubah. Jika menggunakan bash
, akan lebih baik untuk menggunakan substitusi proses untuk menyingkirkan pesan: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Ini akan menghindari pipa dan dengan demikian perubahan terkait dalam penanganan status keluar.
Saya merasa ingin menambahkan kunci host ke host diketahui Anda (orang-orang yang menjalankan layanan ini, dalam pengalaman saya, setidaknya cukup pintar untuk menjaga kunci host mereka konsisten antara mesin yang melayani nama host yang sama) dan kemudian menyalakan StrictHostKeyChecking, mematikan CheckHostIP, dan masuk dengan LogLevel ERROR akan memberi Anda pengalaman terbaik tanpa mengorbankan keamanan. (Ok, tanpa CheckHostIP Anda perlu mempercayai DNS, yang merupakan lubang menganga besar tanpa DNSSEC luas atau sesuatu yang serupa; tetapi kami hanya akan menyapu itu di bawah karpet untuk saat ini.)
Saya menggunakan file diketahui_hosts hanya-baca, jadi saya harus melakukan sesuatu atau saya mendapatkan peringatan tanpa akhir tentang tidak dapat menambahkan entri ke known_hosts.
Apa yang saya gunakan:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
Saya ingin layanan ini untuk mempublikasikan kunci host SSH mereka di situs web mereka melalui HTTPS, jadi saya dapat menyalinnya secara eksplisit tanpa harus terhubung terlebih dahulu dan berpotensi membuat saya terkena serangan MITM.
saya menyarankan
LogLevel ERROR
lebih
LogLevel QUIET
jadi Anda masih mendapatkan "Tidak dapat menyelesaikan nama host" dan kesalahan lainnya
Sudahkah Anda mencoba menonaktifkan StrictHostKeyChecking
? Anda dapat melakukannya dengan -o
opsi atau dalam file konfigurasi ~/.ssh/config
.
Saya menemukan entri .ssh / config berikut berguna (LAN dengan DHCP dan DNS):
CheckHostIP no
Host *.*
CheckHostIP yes
Hasilnya adalah nama mesin lokal "zora" atau "goron" tidak akan memeriksa terhadap alamat IP yang ditetapkan secara dinamis, tetapi www.mycompany.com atau node42.planetlab.com masih akan memiliki IP statis mereka yang dikonfirmasi.