Di recente ho creato una chiave PGP per firmare i miei commit e funziona correttamente. Ho anche scoperto che gpg si integra meglio con il mio sistema operativo. (Kubuntu) di ssh-agent.
Sono pigro e vorrei evitare di dover sostituire la mia chiave SSH in tutti i vari server a cui ho accesso.
C'è qualche opzione per me per importare la mia chiave SSH esistente come sottochiave della mia chiave PGP e quindi eseguire l'agente gpg con il supporto ssh-agent in modo che quando eseguo ssh something
usa la mia sottochiave e usa l'agente gpg per chiedere la passphrase?
Idealmente fornisco il passhprase solo una volta, per la mia chiave PGP principale e quindi ogni volta che mi impegno o accedo tramite ssh, usa quella giusta.
È possibile? (So che hanno un formato diverso, ma è tutto ciò che so)
Risposta accettata:
Tutto ciò di cui hai bisogno:
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
ssh-add -c -t 3600 ~/.ssh/id_rsa # set the cache lifetime as 3600s
Quindi sentiti libero di rimuovere i file:mv ~/.ssh/id_rsa.* /path/to/backup
.
Ora puoi eseguire un accesso SSH per il test.
Dopotutto, ricorda di aggiungere gli ambienti al tuo profilo, come .profile
o ~/.bashrc
.
(Ps:puoi trovare la chiave ssh (in formato gpg) esistente in ~/.gnupg/private-keys-v1.d/
e con keygrip come nome, che può essere utilizzato per essere aggiunto come sottochiave.
Riferimento:
https://incenp.org/notes/2015/gnupg-for-ssh-authentication.html
https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html