• # Compléments

    Posté par . En réponse au journal GnuPG et authentification SSH. Évalué à 10.

    Comme d’habitude, je vais (削除) chipoter (削除ここまで) apporter quelques précisions.

    La prochaine étape est d'indiquer à GnuPG qu'il pourra utiliser notre clé d'authentification pour SSH. Pour cela on rajoute la poignée de la clé (keygrip) dans le fichier ~/.gnupg/sshcontrol.

    Attention, cela n’est possible qu’à partir de GnuPG 2.1 (que vous devriez sérieusement envisager d’utiliser si vous en êtes encore à GnuPG 2.0 — et encore plus si vous êtes resté à GnuPG 1.4).

    Si malgré tout vous devez utiliser GnuPG 2.0, la procédure pour charger une clef OpenPGP dans l’agent est plus tordue, puisqu’il faut d’abord convertir la clef dans un format utilisable par SSH. On peut pour ça utiliser l’outil openpgp2ssh, fourni par le projet Monkeysphere.

    Le chiffre après la poignée est la durée en seconde que l'agent pourra garder la clé en mémoire. Si 0 la valeur par défaut est utilisée qui est de 30 minutes.

    Ce n’est pas la clef que l’agent garde en mémoire, mais la phrase de passe nécessaire pour la déprotéger.

    C’est d’ailleurs une différence de comportement par rapport à l’agent SSH « standard » (ssh-agent, tel que fourni par OpenSSH) qu’il est utile de noter, surtout pour ceux qui utilisaient déjà cet agent auparavant :

    • L’agent OpenSSH ne garde les clefs qu’en mémoire, sous une forme déchiffrée. Conséquemment, il faut charger les clefs dans l’agent à chaque session, et la phrase de passe ne doit être fournie qu’une fois, lors du chargement.

    • L’agent GnuPG garde les clefs sur disque sous une forme chiffrée, et cache en mémoire les phrases de passe. Une clef ne doit être chargée dans l’agent qu’une fois pour toutes. La phrase de passe doit être fournie lors de la première utilisation de la clef, et devra éventuellement être saisie à nouveau pour une utilisation ultérieure si le cache a expiré entre-temps.

    Vous pouvez maintenant profiter de l'authentification SSH par clé publique avec votre clé PGP.

    Il peut être utile de préciser que l’agent GnuPG permet aussi d’utiliser des clefs SSH « classiques » (celles générées avec ssh-keygen par exemple). Il suffit de les charger dans l’agent GnuPG de la même façon qu’on le ferait avec l’agent OpenSSH, c’est-à-dire avec ssh-add.