L’agent de GnuPG permet ser emprat com a agent SSH, és a dir, permet que fem servir les nostres claus GPG per a autenticar‐nos amb sistemes remots mitjançant SSH, evitant‐nos així haver de gestionar un altre parell de claus amb la respectiva contrasenya. Vaig a explicar breument com aconseguir açò.
Per a començar necessitem tenir activat l’agent GnuPG amb la funció d’agent
SSH. Si tenim un sistema operatiu Debian o derivat només cal instaŀlar el
paquet gnupg-agent
i afegir al nostre fitxer ~/.gnupg/gpg-agent.conf
una línia
enable-ssh-support
. En reiniciar la nostra sessió X tindrem l’agent llest.
Vaig a assumir que ja disposem d’un parell de claus GPG. Si no és així, aquest és el moment de generar‐les! Recomane seguir el xicotet manual d’Ana, que també descriu com fer‐ho evitant el vulnerable algorisme SHA-1.
Anem a necessitar alguna clau GPG amb capacitat d’autenticació. Per a no
toquetejar les nostres claus principals el més senzill és generar una nova subclau expressament per a tal efecte. Podem fer‐ho directament amb gpg
,
però trobe que és molt més senzill fer‐ho emprant Monkeysphere. Només cal
instaŀlar el paquet monkeysphere
i executar:
$ monkeysphere gen-subkey --length MIDA
On MIDA
és la mida en bits de la subclau (p.ex. 4096). Per a importar la
subclau a l’agent també farem servir monkeysphere
:
$ monkeysphere subkey-to-ssh-agent
Si monkeysphere
es queixa de que no ha trobat cap clau adequada, haurem
d’indicar‐li l’empremta completa de la subclau d’autenticació, que podem
obtenir executant:
$ gpg --list-keys --fingerprint --fingerprint --with-colons ID
On ID
és l’identificador de la nostra clau GPG, i l’opció duplicada és
correcta (sí!). Al final de l’eixida veurem quelcom com açò:
sub:u:4096:1:0123456789ABCDEF:2011-04-03::::::a: fpr:::::::::00112233445566778899AABB0123456789ABCDEF:
La línia començada en sub
i acabada en :a:
correspon a la subclau
d’autenticació, i la línia fpr
següent a la seua empremta. Posem l’empremta
en la variable d’entorn MONKEYSPHERE_SUBKEYS_FOR_AGENT
i tornem a provar:
$ MONKEYSPHERE_SUBKEYS_FOR_AGENT=00112233445566778899AABB0123456789ABCDEF $ export MONKEYSPHERE_SUBKEYS_FOR_AGENT $ monkeysphere subkey-to-ssh-agent
En acabant tindrem ja carregada la subclau GPG d’autenticació a l’agent GnuPG.
Podem comprovar que així és executant ssh-add -L
i propagar‐la a uns altres
sistemes amb ssh-copy-id
.
Això és tot! Ara que açò funciona val la pena fer un repàs als diferents
manuals que ha publicat Vicent per a autenticar‐se amb la contrasenya d’SSH i
compartir les claus SSH carregades entre les diferents sessions obertes a una
màquina. Quin luxe, emprar la clau GPG per a tot i a penes haver d’entrar
contrasenyes! Però ara procureu no deixar tant l’ordinador desatès, i si ho
feu, recordeu que pkill -HUP gnupg-agent
fa que l’agent oblide les
contrasenyes (una drecera de teclat aniria bé).
Per a acabar vull dir que amb Monkeysphere he fet un descobriment que em té molt intrigat. Es tracta de crear les eines necessàries per a aplicar tota la web of trust d’OpenPGP, que és una xarxa de confiança distribuïda, a l’autenticació d’usuaris i llocs SSH i HTTPS. Recordem que la infraestructura de clau pública de la web segueix una estructura descentralitzada que depén de les autoritats de certificació (CA), i que són el desenvolupadors i distribuïdors dels navegadors web (i no els seus usuaris) els que decideixen quines autoritats, llocs i usuaris són de confiança… ho estudiaré i n’informaré!