Sto eseguendo Mac OS X e sembra che dopo SSHing su più macchine, usando i file di identità, il mio 'ssh-agent' costruisca molte identità / chiavi e quindi a volte ne offre troppe a una macchina remota, causandole a avviami prima di connetterti:
Disconnessione ricevuta dal 10.12.10.16: 2: troppi errori di autenticazione per cwd
È abbastanza ovvio cosa sta succedendo e questa pagina ne parla in modo più dettagliato:
I server SSH ti consentono di tentare di autenticarti solo un certo numero di volte. Ogni tentativo fallito di password, ogni pubkey / identità che viene offerto, ecc., Riprende uno di questi tentativi. Se si dispone di molte chiavi SSH nel proprio agente, è possibile che un server SSH possa eliminarti prima di consentirti di tentare l'autenticazione della password. In questo caso, esistono diverse soluzioni alternative.
Il riavvio cancella l'agente e quindi tutto funziona di nuovo OK. Posso anche aggiungere questa riga al mio .ssh/config
file per forzarlo a utilizzare l'autenticazione con password:
PreferredAuthentications keyboard-interactive,password
Ad ogni modo, ho visto la nota sulla pagina a cui ho fatto riferimento parlando dell'eliminazione delle chiavi dall'agente, ma non sono sicuro che ciò si applichi su un Mac poiché sembrano comunque cancellati dopo il riavvio.
C'è un modo semplice per cancellare tutte le chiavi in 'ssh-agent' (la stessa cosa che succede al riavvio)?
ssh-add -l
non ottengo nulla. Se digitossh -i ~/keyFileLocation.dsa un@remotehost
ottengo una finestra di dialogo popup OS X che richiede la passphrase. Lo digito e poi mi connette. Se mi disconnetto e poi digitossh-add -l
, mi mostra l'identità che ho appena usato. Dopo aver riavviato il computer e digitatossh-add -l
, è di nuovo vuoto.ssh-add -D
ha funzionato alla grande per cancellare i tasti senza riavviare. Grazie!