Si noti che esistono almeno due segnalazioni di bug per ssh-add -d/-D
non rimuovere le chiavi:
Il problema esatto è:
ssh-add -d/-D
elimina solo le chiavi aggiunte manualmente dal portachiavi gnome.
Non è possibile eliminare le chiavi aggiunte automaticamente.
Questo è il bug originale ed è ancora sicuramente presente.
Quindi, ad esempio, se hai due diverse identità ssh caricate automaticamente associate a due diversi account GitHub - diciamo per lavoro e per casa - non c'è modo di passare da una all'altra. GitHub Imposta il primo corrispondente, quindi appari sempre il tuo utente 'home' su GitHub, senza alcun modo di caricare cose su progetti di lavoro.
Consentire ssh-add -d
di applicare le chiavi caricate automaticamente (e ssh-add -t X
di modificare la durata delle chiavi caricate automaticamente) ripristinerebbe il comportamento che la maggior parte degli utenti si aspetta.
Più precisamente, sul problema:
Il colpevole è gpg-keyring-daemon
:
- Sovverte il normale funzionamento di ssh-agent, principalmente solo per poter far apparire una bella scatola in cui è possibile digitare la passphrase per una chiave ssh crittografata.
- E collega la tua
.ssh
directory e aggiunge automaticamente tutte le chiavi che trova al tuo agente.
- E non ti permetterà di eliminare quelle chiavi.
Come lo odiamo? Non contiamo i modi: la vita è troppo breve.
L'errore è aggravato dal fatto che i nuovi client SSH provano automaticamente tutte le chiavi nel proprio agente SSH quando si connettono a un host.
Se ce ne sono troppi, il server rifiuterà la connessione.
E dal momento che gnome-keyring-daemon ha deciso da sé quante chiavi vuoi che il tuo ssh-agent abbia, e le ha caricate automaticamente, E NON LASCIARLI ELIMINARLI, sei brindisi.
Questo errore è ancora confermato in Ubuntu 14.04.4, di recente due giorni fa (21 agosto 2014)
Una possibile soluzione alternativa:
- Fare
ssh-add -D
per eliminare tutte le chiavi aggiunte manualmente . Questo blocca anche le chiavi aggiunte automaticamente, ma non è molto utile poiché gnome-keyring
ti chiederà di sbloccarle comunque quando provi a fare una git push
.
- Passare alla
~/.ssh
cartella e spostare tutti i file delle chiavi tranne quello con cui si desidera identificarsi in una cartella separata chiamata backup. Se necessario, puoi anche aprire il cavalluccio marino ed eliminare le chiavi da lì.
- Ora dovresti essere in grado di fare a
git push
meno di un problema.
Un'altra soluzione alternativa:
Quello che vuoi davvero fare è spegnere del gpg-keyring-daemon
tutto.
Vai a System --> Preferences --> Startup Applications
e deseleziona la SSH Key Agent (Gnome Keyring SSH Agent)
casella " " - dovrai scorrere verso il basso per trovarlo.
Otterrai ancora un ssh-agent
, solo ora si comporterà in modo sano: nessuna chiave viene caricata automaticamente, esegui ssh-add per aggiungerli e, se vuoi eliminare le chiavi, puoi farlo. Immaginalo.
Questo commento suggerisce in realtà:
La soluzione è impedire gnome-keyring-manager
che si avvii mai, cosa che era stranamente difficile alla fine raggiunta rimuovendo il permesso di esecuzione del file di programma.
Ryan Lue aggiunge un altro interessante caso d'angolo nei commenti :
Nel caso questo aiuti chiunque: ho anche provato a eliminare del tutto i file id_rsa
e id_rsa.pub
e la chiave era ancora visualizzata.
Si scopre che gpg-agent
li stava memorizzando nella cache in un ~/.gnupg/sshcontrol
file ; Ho dovuto eliminarli manualmente da lì.
Questo è il caso in cui lakeygrip
si è aggiunto come qui .
ssh-add -d
?