Si noti che esistono almeno due segnalazioni di bug per ssh-add -d/-D non rimuovere le chiavi:
Il problema esatto è:
ssh-add -d/-Delimina 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 -ddi applicare le chiavi caricate automaticamente (e ssh-add -t Xdi 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
.sshdirectory 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 -Dper eliminare tutte le chiavi aggiunte manualmente . Questo blocca anche le chiavi aggiunte automaticamente, ma non è molto utile poiché gnome-keyringti chiederà di sbloccarle comunque quando provi a fare una git push.
- Passare alla
~/.sshcartella 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 pushmeno di un problema.
Un'altra soluzione alternativa:
Quello che vuoi davvero fare è spegnere del gpg-keyring-daemontutto.
Vai a System --> Preferences --> Startup Applicationse 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-managerche 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_rsae id_rsa.pube la chiave era ancora visualizzata.
Si scopre che gpg-agentli stava memorizzando nella cache in un ~/.gnupg/sshcontrolfile ; Ho dovuto eliminarli manualmente da lì.
Questo è il caso in cui lakeygrip si è aggiunto come qui .
ssh-add -d?