Risposte:
-o "UserKnownHostsFile /dev/null"
dovrebbe funzionare.
grep
unirà stdout e stderr; anche lo stato di uscita può cambiare. Se si utilizza bash
, sarà meglio usare sostituzione di processo per sbarazzarsi del messaggio: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Eviterà la conduttura e quindi i corrispondenti cambiamenti nella gestione dello stato di uscita.
Se si desidera questo comportamento perché si lavora con server cloud (AWS EC2, Rackspace CloudServers ecc.) O si esegue costantemente il provisioning di nuove immagini in Vagrant, è possibile che si desideri aggiornare la configurazione SSH invece di aggiungere alias bash o più opzioni sul riga di comando.
Valuta di aggiungere qualcosa come:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
Ho voglia di aggiungere la chiave host ai tuoi known_hosts (le persone che gestiscono questi servizi sono, almeno nella mia esperienza, abbastanza intelligenti da mantenere coerenti le chiavi dell'host tra macchine che servono lo stesso nome host) e quindi attivare StrictHostKeyChecking, disattivare CheckHostIP e la registrazione con LogLevel ERROR ti offrirà la migliore esperienza senza sacrificare la sicurezza. (Ok, senza CheckHostIP devi fidarti del DNS, che è un enorme buco senza DNSSEC diffuso o qualcosa di simile; ma per il momento lo spazzeremo sotto il tappeto.)
Uso un file known_hosts di sola lettura, quindi devo fare qualcosa o ricevo infiniti avvisi di non poter aggiungere voci a known_hosts.
Quello che uso:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
Vorrei che questi servizi pubblicassero le loro chiavi host SSH sui loro siti Web tramite HTTPS, quindi posso copiarle in modo esplicito senza dover prima collegarmi ed esponermi potenzialmente a un attacco MITM.
Per una singola sessione SSH, utilizzare questo
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
suggerisco
LogLevel ERROR
al di sopra di
LogLevel QUIET
quindi ottieni ancora "Impossibile risolvere il nome host" e altri errori simili
Hai provato a disabilitare StrictHostKeyChecking
? Puoi farlo con l' -o
opzione o nel file di configurazione ~/.ssh/config
.
Ho trovato utili le seguenti voci .ssh / config (LAN con DHCP e DNS):
CheckHostIP no
Host *.*
CheckHostIP yes
Il risultato è che i nomi di macchine locali "zora" o "goron" non controlleranno gli indirizzi IP assegnati dinamicamente, ma www.mycompany.com o node42.planetlab.com continueranno a confermare i loro IP statici.
grep -v "^Warning: Permanently added"