Yanıtlar:
-o "UserKnownHostsFile /dev/null"
çalışmalı.
grep
stdout ve stderr'yi birleştirecek; ayrıca çıkış durumu da değişebilir. Kullanılıyorsa bash
, mesajın kurtulmak için süreç ikame kullanmak daha iyi olacaktır: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Boruyu ve dolayısıyla çıkış durumu işlemesinde ilgili değişiklikleri önleyecektir.
Bulut sunucusuyla (AWS EC2, Rackspace CloudServers vb.) Çalıştığınız için bu davranışı istiyorsanız veya Vagrant'ta sürekli olarak yeni görüntüler hazırlıyorsanız, SSH yapılandırmanızı bash takma adları veya daha fazla seçenek eklemek yerine güncellemek isteyebilirsiniz. Komut satırı.
Gibi bir şey eklemeyi düşünün:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
Bilinen ana bilgisayarlarınıza ana bilgisayar anahtarını eklemek istiyorum (bu hizmetleri çalıştıranlar benim deneyimime göre, ana bilgisayar anahtarlarını aynı ana bilgisayar adına hizmet veren makineler arasında tutarlı tutacak kadar akıllıdır) ve sonra StrictHostKeyChecking, CheckHostIP özelliğini kapatıp, LogLevel ERROR ile oturum açmak, güvenlikten ödün vermeden size en iyi deneyimi sağlayacaktır. (Tamam, CheckHostIP olmadan, DNSSEC ya da benzeri yaygın bir şey olmayan büyük bir boşluk olan DNS'ye güvenmeniz gerekir; ancak şu an için halının altına bakacağız.)
Salt okunur bir known_hosts dosyası kullanıyorum, bu yüzden bir şeyler yapmam gerekiyor veya bilinen_host'lara giriş ekleyememe konusunda sonsuz uyarılar alıyorum.
Ne kullanıyorum:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
Bu hizmetlerin SSH ana bilgisayar anahtarlarını HTTPS aracılığıyla web sitelerinde yayınlamasını istiyorum, bu nedenle ilk önce bağlantı kurmak zorunda kalmadan kendimi MITM saldırısına maruz bırakmadan açıkça kopyalayabilirim.
öneririm
LogLevel ERROR
bitmiş
LogLevel QUIET
bu nedenle, hala "ana bilgisayar adı çözümlenemedi" ve benzeri hatalar alıyorsunuz
Devre dışı bırakmayı denedin StrictHostKeyChecking
mi? Sen ile yapabilirsiniz -o
seçenek veya yapılandırma dosyasında ~/.ssh/config
.
Aşağıdaki .ssh / config girişlerini faydalı buldum (DHCP ve DNS içeren LAN):
CheckHostIP no
Host *.*
CheckHostIP yes
Sonuç yerel makine adları "zora" veya "goron" dinamik olarak atanmış IP adreslerini kontrol etmeyecek, ancak www.mycompany.com veya node42.planetlab.com adresinde statik IP'leri onaylanacak.
grep -v "^Warning: Permanently added"