Odpowiedzi:
-o "UserKnownHostsFile /dev/null"
powinno działać.
grep
połączy stdout i stderr; także status wyjścia może ulec zmianie. Jeśli używasz bash
, to będzie lepiej użyć podstawienia procesowego, aby pozbyć się komunikatu: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Pozwoli to uniknąć potoku, a tym samym odpowiednich zmian w obsłudze statusu wyjścia.
Jeśli chcesz tego zachowania, ponieważ pracujesz z serwerami w chmurze (AWS EC2, Rackspace CloudServers itp.) Lub stale udostępniasz nowe obrazy w Vagrant, możesz chcieć zaktualizować konfigurację SSH zamiast dodawać aliasy bash lub więcej opcji na wiersz poleceń.
Rozważ dodanie czegoś takiego:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
Mam ochotę dodać klucz hosta do znanych hostów (według mnie ludzie prowadzący te usługi są przynajmniej wystarczająco inteligentni, aby zachować spójność kluczy hostów między komputerami obsługującymi tę samą nazwę hosta), a następnie włączyć StrictHostKeyChecking, wyłączyć CheckHostIP i logowanie za pomocą LogLevel ERROR zapewni najlepsze wrażenia bez uszczerbku dla bezpieczeństwa. (Ok, bez CheckHostIP musisz zaufać DNS, który jest ogromną luką bez szeroko rozpowszechnionego DNSSEC lub czegoś podobnego; ale na razie zamiatamy to pod dywan).
Korzystam z pliku znanego hosta tylko do odczytu, więc muszę coś zrobić lub otrzymuję niekończące się ostrzeżenia o niemożności dodawania wpisów do znanych hostów.
Czego używam:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
Chciałbym, aby te usługi publikowały klucze hostów SSH na swoich stronach internetowych za pośrednictwem HTTPS, dzięki czemu mogę je jawnie skopiować bez konieczności łączenia się i potencjalnie narażając się na atak MITM.
sugeruję
LogLevel ERROR
koniec
LogLevel QUIET
więc nadal pojawia się komunikat „Nie można rozwiązać nazwy hosta” i inne podobne błędy
Czy próbowałeś wyłączyć StrictHostKeyChecking
? Możesz to zrobić za pomocą -o
opcji lub w pliku konfiguracyjnym ~/.ssh/config
.
Przydatne okazały się następujące wpisy .ssh / config (LAN z DHCP i DNS):
CheckHostIP no
Host *.*
CheckHostIP yes
Rezultatem jest to, że lokalne nazwy komputerów „zora” lub „goron” nie sprawdzą dynamicznie przypisanych adresów IP, ale www.mycompany.com lub node42.planetlab.com nadal będą potwierdzać swoje statyczne adresy IP.
grep -v "^Warning: Permanently added"