Cet article s'adresse en priorité aux utilisateurs d'Unix-like, autrement dit utilisateurs de distributions GNU/Linux et MacOS. En effet, vous disposez tous d'un émulateur de terminal, que ce soit Konsole, Yakuake, Guake ou Terminal sous Mac.
Toutes les manipulations décrites dans cet article sont à faire dans un terminal.

Gpg --version

Il est préférable d'utiliser la version 2 de gnupg, ainsi que je l'ai indiqué dans un article de la première série. C'est ce que je fais dans tout le tutoriel d'ailleurs - même quand je n'indique pas le numéro de version !

Dans l'idéal, il faudrait donc créer un lien symbolique entre le binaire gpg2 et gpg, mais…

  1. l'utilisation de gpg (la version 1) est peut-être encore nécessaire à certains programmes.
  2. à la première installation d'un programme quelconque, ce lien symbolique sera détruit et remplacé par le binaire original.
  3. je ne sais pas protéger le bricolage indiqué au point 2, même si je sais que c'est possible.

En revanche, il est très facile de créer un alias personnel via l'interpréteur de commandes (dash, bash, sh...).

Comme d'habitude, l'utilisation de gpg en ligne de commande s'avère être extrêmement puissant. On peut faire des choses assez pointues avec ça.

Il est en fait impossible de faire un certain nombre de choses de base en interface graphique. C'est quand même dommage.

Récapitulatif des commandes de base

C'est bel et bien un récapitulatif. Le meilleur moyen de connaître les possibilités, c'est encore d'appeler le manuel, ou encore l'option --help (parce que le manuel est bien compliqué) !
Néanmoins, je comprends qu'on ait besoin d'un peu d'aide et c'est la raison de ce tutoriel, et de chacun de ces articles !

La commande s'utilise comme tel:

gpg --option

Pour avoir une liste des options disponibles, faîtes simplement:

gpg --help

Un pense-bête

Si vous avez suivi mes conseils sur la configuration de gpg, alors gpg doit vous indiquer les identifiants longs et les empreintes lorsqu'on lui demande la liste des clés:

stephane@luciole:~$ gpg --list-keys

pub   rsa4096/42E0A02EF1C935A4 2015-02-15 [SC] [expire : 2017-04-27]
    Empreinte de la clef = 30CF 1DA5 7E87 6BAA 730D  E561 42E0 A02E F1C9 35A4
uid                [  ultime ] Tutoriel GPG <tuto-gpg@22decembre.eu>
sub   rsa4096/D1697B1537D4D659 2016-04-27 [E] [expire : 2017-04-27]

Le premier élément de l'identifiant indique la longueur de la clé (ici 4096 bits) et son type (RSA en l’occurrence), puis l'identifiant lui-même, ensuite de quoi la date de création, et enfin la date d'expiration entre crochets.

De la même manière que dans les interfaces graphiques que sont Kgpg et Kleopatra, la signature de clés se fait en éditant la clé (vous pouvez éditer toutes les clés dans votre trousseau, que vous ayez ou non la clé privée) :

gpg --edit 'id clé'

Vous pouvez utiliser l'adresse courriel attachée à la clé en guise d’identifiant, mais vous tomberez, apparemment, sur la première clé du trousseau qui correspond, quand bien même elle aurait été révoquée !

La meilleure méthode est d'utiliser l'identifiant long de la clé. Par exemple, si vous voulez signer la clé du tutoriel:

gpg --edit '42E0A02EF1C935A4'

Vous obtenez alors une ligne de commande spécifique à gpg:

gpg>

Où vous pouvez à nouveau obtenir les options détaillées:

gpg> help

Entrons dans le vif du sujet

Le but de cet article, c'est de vous permettre de maîtriser la ligne de commande de gpg.

Précaution

Je vous conseille en tout premier lieu de sauver vos clés privées si vous n'avez pas de sauvegarde actuellement (et les clés publiques de vos correspondants réguliers) en suivant les conseils fournis dans ces articles précédents.

Je vous propose tout simplement de manipuler des clés et de voir les différentes possibilités offertes par la ligne de commande de gpg. Et pour se faire, on va tout simplement créer une clé, juste pour ça.

Créer une clé

Dans votre terminal, entrez donc cette commande :

gpg --full-gen-key

Cette commande va vous permettre d'utiliser toutes les options de gpg, plutôt que les options par défaut.

[stephane@Jabberwocky ~]$ gpg --full-gen-key 
gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Sélectionnez le type de clef désiré :
(1) RSA et RSA (par défaut)
(2) DSA et Elgamal
(3) DSA (signature seule)
(4) RSA (signature seule)
Quel est votre choix ? 1

Utilisez donc le choix par défaut. On souhaite voir comment utiliser nos clés classiques.

les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 1024

Comme c'est une clé juste pour bricoler et s’entraîner, pas besoin de mettre toute la puissance. Je demande donc 1024 bits.

La taille demandée est 1024 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
        0 = la clef n'expire pas
    <n>  = la clef expire dans n jours
    <n>w = la clef expire dans n semaines
    <n>m = la clef expire dans n mois
    <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 10

J'ai donc dix jours de validité.

La clef expire le dim. 15 mai 2016 20:32:24 CEST
Est-ce correct ? (o/N) o

GnuPG doit construire une identité pour identifier la clef.

Nom réel : Stéphane Guedon
Adresse électronique : spamtrap@22decembre.eu

Il me demande une adresse électronique. C'est en fait optionnel. De même du commentaire. Vous pouvez entrer une phrase de passe ou laisser vide.

Commentaire : 
Vous utilisez le jeu de caractères « utf-8 ».
Vous avez sélectionné cette identité :
    « Stéphane Guedon <spamtrap@22decembre.eu> »

Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
gpg: clef AE028A5A marquée de confiance ultime.
gpg: revocation certificate stored as '/home/stephane/.gnupg/openpgp-revocs.d/DC4E466EFBC93FFB75AE12DAD0C3AD44AE028A5A.rev'
les clefs publique et secrète ont été créées et signées.

gpg: vérification de la base de confiance
gpg: marginals needed: 3  completes needed: 1  trust model: PGP
gpg: profondeur : 0  valables :   4  signées :   0
    confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 4 u.
gpg: la prochaine vérification de la base de confiance aura lieu le 2016-05-15
pub   rsa1024/D0C3AD44AE028A5A 2016-05-05 [S] [expire : 2016-05-15]
Empreinte de la clef = DC4E 466E FBC9 3FFB 75AE  12DA D0C3 AD44 AE02 8A5A
uid        [  ultime ] Stéphane Guedon <spamtrap@22decembre.eu>
sub   rsa1024/0A7946205EB6EC32 2016-05-05 [] [expire : 2016-05-15]

[stephane@Jabberwocky ~]$

Et nous voila donc avec une clé de 1024 bits. On peut vérifier ça avec l'option -K qui indique les clés secrètes sur la machine :

[stephane@Jabberwocky ~]$ gpg -K
/home/stephane/.gnupg/pubring.kbx
---------------------------------

...
sec   rsa1024/D0C3AD44AE028A5A 2016-05-05 [SC] [expire : 2016-05-15]
    Empreinte de la clef = DC4E 466E FBC9 3FFB 75AE  12DA D0C3 AD44 AE02 8A5A
uid                [  ultime ] Stéphane Guedon <spamtrap@22decembre.eu>
ssb   rsa1024/0A7946205EB6EC32 2016-05-05 [E] [expire : 2016-05-15]

Éditons la !

On va modifier la clé. Pour se faire, gpg s'utilise avec --edit-key. Utilisez bien l'identifiant de votre nouvelle clé !

gpg --edit-key D0C3AD44AE028A5A

On a alors la ligne de commande de gpg :

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-05-15  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/5EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
[  ultime ] (1). Stéphane Guedon <spamtrap@22decembre.eu>

gpg>

On va d'abord modifier sa date d'expiration avec expire :

gpg> expire
Modification de la date d'expiration de la clef principale.
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
        0 = la clef n'expire pas
    <n>  = la clef expire dans n jours
    <n>w = la clef expire dans n semaines
    <n>m = la clef expire dans n mois
    <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 30
La clef expire le dim. 05 juin 2016 09:16:59 CEST
Est-ce correct ? (o/N) o

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime

Voila. La clé a été prolongée de 30 jours.

ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
[  ultime ] (1). Stéphane Guedon <spamtrap@22decembre.eu>

Par contre la date de validité de la sous-clé est bien restée la même !

Une deuxième sous-clé

On va jouer un peu plus, et créer une deuxième sous-clé.

gpg> addkey
Sélectionnez le type de clef désiré :
(3) DSA (signature seule)
(4) RSA (signature seule)
(5) Elgamal (chiffrement seul)
(6) RSA (chiffrement seul)
Quel est votre choix ? 6

On peut bien choisir le type de clé.

les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 1024

La taille de la clé reste libre.

La taille demandée est 1024 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
        0 = la clef n'expire pas
    <n>  = la clef expire dans n jours
    <n>w = la clef expire dans n semaines
    <n>m = la clef expire dans n mois
    <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 100
La clef expire le dim. 14 août 2016 09:23:06 CEST
Est-ce correct ? (o/N) o

De même que sa date de validité.

Faut-il vraiment la créer ? (o/N) o
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1). Stéphane Guedon <spamtrap@22decembre.eu>

gpg>

On a maintenant une clé privée avec deux sous-clés, dont toutes les dates de validité sont différentes.

Ajouter des identités

On peut ajouter des identités sur la clé:

gpg> adduid
Nom réel : tartanpion
Adresse électronique : tartanpion@22decembre.eu
Commentaire : 
Vous avez sélectionné cette identité :
    « tartanpion <tartanpion@22decembre.eu> »

Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1)  Stéphane Guedon <spamtrap@22decembre.eu>
[ inconnue] (2). tartanpion <tartanpion@22decembre.eu>

gpg> adduid
Nom réel : Stéphane Guedon Free
Adresse électronique : stephane.guedon@free.fr
Commentaire : 
Vous utilisez le jeu de caractères « utf-8 ».
Vous avez sélectionné cette identité :
    « Stéphane Guedon Free <stephane.guedon@free.fr> »

Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1)  Stéphane Guedon <spamtrap@22decembre.eu>
[ inconnue] (2)  tartanpion <tartanpion@22decembre.eu>
[ inconnue] (3). Stéphane Guedon Free <stephane.guedon@free.fr>

gpg>

Les identités s'ajoutent les unes à la suite des autres, avec une confiance inconnue pour l'instant.

Si vous sauvez les modifications lorsque vous quittez gpg, vos nouvelles identités seront signées avec une confiance ultime. C'est logique puisque vous avez créé la clé sur cet ordinateur, et que vous avez la clé privée principale.

Sélectionner des identités ou des clés

On peut sélectionner une identité de la clé avec uid:

gpg> uid 2

sec  rsa1024/D0C3AD44AE028A5A
...
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1). Stéphane Guedon Free <stephane.guedon@free.fr>
[  ultime ] (2)* Stéphane Guedon <spamtrap@22decembre.eu>
[  ultime ] (3)  tartanpion <tartanpion@22decembre.eu>

On peut continuer:

gpg> uid 3

sec  rsa1024/D0C3AD44AE028A5A
...
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1). Stéphane Guedon Free <stephane.guedon@free.fr>
[  ultime ] (2)* Stéphane Guedon <spamtrap@22decembre.eu>
[  ultime ] (3)* tartanpion <tartanpion@22decembre.eu>

Ici, j'ai sélectionné les deux dernières identités. Et je vais les supprimer :

gpg> deluid
Faut-il vraiment supprimer toutes les identités sélectionnées ? (o/N) o

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1). Stéphane Guedon Free <stephane.guedon@free.fr>

La clé n'a bien plus qu'une seule identité.

On peut, de même, sélectionner une ou plusieurs sous-clés avec key suivi du numéro de la clé. Pour lacher la selection, utilisez juste key.

Signer des identités

On peut signer une ou plusieurs identités. Par exemple, à l'étape précédente j'ai sélectionné les deux dernières sous-clés. Je vais maintenant les signer avec ma clé par défaut (il est possible de faire des signatures spéciales, non révocables, uniquement locales, etc) :

gpg> sign

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
Empreinte clef princip. : DC4E 466E FBC9 3FFB 75AE  12DA D0C3 AD44 AE02 8A5A

    stephane <stephane.guedon@22december.dk>
    honey <honey@22decembre.eu>

Cette clef va expirer le 2016-06-05.
Voulez-vous vraiment signer cette clef avec votre
clef « Stéphane Guedon <stephane@22decembre.eu> » (12BA48CF01C75BCD)

J'ai partiellement vérifié cette clef.

Voulez-vous vraiment signer ? (o/N) o

Ma phrase de passe sera demandée. La signature se fait. On sauve et on quitte.

gpg> save

Lorsqu'on ré-édite la clé, on peut vérifier les signatures avec check :

gpg --edit-key D0C3AD44AE028A5A
gpg (GnuPG) 2.1.11; Copyright (C) 2016 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

La clef secrète est disponible.

gpg: vérification de la base de confiance
gpg: marginals needed: 3  completes needed: 1  trust model: PGP
gpg: profondeur : 0  valables :   4  signées :   0
    confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 4 u.
gpg: la prochaine vérification de la base de confiance aura lieu le 2016-06-05
sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : ultime        validité : ultime
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  ultime ] (1). honey <honey@22decembre.eu>
[  ultime ] (2)  spamtrap <spamtrap@22decembre.eu>
[  ultime ] (3)  Stéphane Guedon Free <stephane.guedon@free.fr>
[  ultime ] (4)  stephane <stephane.guedon@22december.dk>

gpg> check
uid  honey <honey@22decembre.eu>
sig!3        D0C3AD44AE028A5A 2016-05-06  [autosignature]
sig!2        12BA48CF01C75BCD 2016-05-06  Stéphane Guedon <stephane@22decembre.
uid  spamtrap <spamtrap@22decembre.eu>
sig!3        D0C3AD44AE028A5A 2016-05-06  [autosignature]
uid  Stéphane Guedon Free <stephane.guedon@free.fr>
sig!3        D0C3AD44AE028A5A 2016-05-06  [autosignature]
uid  stephane <stephane.guedon@22december.dk>
sig!3        D0C3AD44AE028A5A 2016-05-06  [autosignature]
sig!2        12BA48CF01C75BCD 2016-05-06  Stéphane Guedon <stephane@22decembre.

On voit bien que seules les deux identités sélectionnées ont été signées.

Confiance

On peut aussi modifier le niveau de confiance accordé au propriétaire de la clé avec la commande trust :

gpg> trust
sec  rsa1024/D0C3AD44AE028A5A
...

Décidez maintenant de la confiance que vous portez en cet utilisateur pour
vérifier les clefs des autres utilisateurs (en regardant les passeports, en
vérifiant les empreintes depuis diverses sources, etc.)

1 = je ne sais pas ou n'ai pas d'avis
2 = je ne fais PAS confiance
3 = je fais très légèrement confiance
4 = je fais entièrement confiance
5 = j'attribue une confiance ultime
m = retour au menu principal

Quelle est votre décision ? 2

NB : Si vous avez besoin d'un rappel sur les différences entre la signature et le niveau de confiance, cet article est pour vous : Signer des clés

Bon, vous voyez qu'on peut faire pas mal de choses là.

utiliser les options de base de gpg

On peut très bien se passer d'entrer dans la ligne de commande interne de gpg.

Par exemple…

Signer

On peut signer une clé :

gpg --sign-key tuto-gpg@22decembre.eu

On peut aussi signer avec une clé qui n'est pas celle par défaut:

gpg -u tuto-gpg@22decembre.eu --sign-key D0C3AD44AE028A5A

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : jamais        validité : totale
ssb  rsa1024/0A7946205EB6EC32
    créé : 2016-05-05  expire : 2016-05-15  utilisation : E   
ssb  rsa1024/14B62D2737F5BB60
    créé : 2016-05-06  expire : 2016-08-14  utilisation : E   
[  totale ] (1). honey <honey@22decembre.eu>
[ inconnue] (2)  spamtrap <spamtrap@22decembre.eu>
[ inconnue] (3)  Stéphane Guedon Free <stephane.guedon@free.fr>
[  totale ] (4)  stephane <stephane.guedon@22december.dk>

Really sign all text user IDs? (y/N) y

sec  rsa1024/D0C3AD44AE028A5A
    créé : 2016-05-05  expire : 2016-06-05  utilisation : SC  
    confiance : jamais        validité : totale
Empreinte clef princip. : DC4E 466E FBC9 3FFB 75AE  12DA D0C3 AD44 AE02 8A5A

    honey <honey@22decembre.eu>
    spamtrap <spamtrap@22decembre.eu>
    Stéphane Guedon Free <stephane.guedon@free.fr>
    stephane <stephane.guedon@22december.dk>

Cette clef va expirer le 2016-06-05.
Voulez-vous vraiment signer cette clef avec votre
clef « Tutoriel GPG <tuto-gpg@22decembre.eu> » (42E0A02EF1C935A4)

J'ai partiellement vérifié cette clef.

Voulez-vous vraiment signer ? (o/N) o

Chercher des clés sur les serveurs de clés

Si vous avez un serveur de clés dans votre configuration, alors vous pouvez faire une recherche :

[stephane@Jabberwocky ~]$ gpg --search-keys cnrs
gpg: data source: http://jupiter.zaledia.com:11371
(1)     Jerome LEBRUN (DSA) <Jerome.Lebrun@cnrs.fr>
        2048 bit DSA key 4FD41B87EFF0126D, créé : 2016-04-21
(2)     Jerome LEBRUN <Jerome.Lebrun@cnrs.fr>
        4096 bit RSA key 68364CE715CC0635, créé : 2016-04-21
(3)     BONNET <jonathan.bonnet@dr13.cnrs.fr>
        2048 bit RSA key B5433AFD51FA0BEA, créé : 2016-03-18
(4)     Lionel Eliezer GUEZ (CNRS) <guez@lmd.ens.fr>
        4096 bit RSA key 5578DCFE4BAA02D2, créé : 2016-03-17, expire : 2018-03-17
(5)     Hadrien Commenges (professional) <hcommenges@parisgeo.cnrs.fr>
        4096 bit RSA key C5AEA1CEB6536CF4, créé : 2016-03-17, expire : 2019-03-17
(6)     Miguel Ortiz Lombardía <miguel.ortiz-lombardia@univ-amu.fr>
        Miguel Ortiz Lombardía <miguel.ortiz-lombardia@igs.cnrs-mrs.fr>
        4096 bit RSA key 82F1602DE30F0CBF, créé : 2015-11-23
(7)     Remi Ferrand (riton) <remi@ferrand.email>
        Remi Ferrand (riton) <remi.ferrand@protonmail.ch>
        Remi Ferrand (IN2P3 Computing Centre, CNRS) <remi.ferrand@cc.in2p3.fr>
        4096 bit RSA key EE6FE94311EBB744, créé : 2015-09-23
(8)     Damien Cram (LINA UMR 6241 CNRS) <damien.cram@univ-nantes.fr>
        2048 bit RSA key 151CA94CAB6CD92A, créé : 2015-09-04
(9)     Stefania Residori <stefania.residori@inln.cnrs.fr>
        4096 bit RSA key E330DAAAFC45C40D, créé : 2015-05-03
Keys 1-9 of 154 for "cnrs".  Entrez le ou les nombres, (S)uivant, ou (Q)uitter >

Importez les clés que vous voulez en indiquant leur numéro, ici deux clés : la 3 et la 5 :

Keys 10-17 of 154 for "cnrs".  Entrez le ou les nombres, (S)uivant, ou (Q)uitter > 3 5
gpg: clef C5AEA1CEB6536CF4 : clef publique « Hadrien Commenges (professional) <hcommenges@parisgeo.cnrs.fr> » importée
gpg: clef B5433AFD51FA0BEA : clef publique « BONNET <jonathan.bonnet@dr13.cnrs.fr> » importée
gpg:       Quantité totale traitée : 2
gpg:                     importées : 2
(18)    Richard Randriatoamanana <randria@gmail.com>
        Richard Randriatoamanana (IRCCyN CNRS) <randria@irccyn.ec-nantes.fr>
        Richard Randriatoamanana (IRCCyN CNRS) <richard.randria@irccyn.ec-nant
        Richard Randriatoamanana (IRCCyN CNRS) <richard.randriatoamanana@irccy
        4096 bit RSA key 60C4432B91C8DC89, créé : 2014-11-19
(19)    Sylvain MAURIN (ProID) <sylvain.maurin@isc.cnrs.fr>
        4096 bit RSA key F2604CE690C6ECCC, créé : 2014-06-11
(20)    Jérémy Levallois <jeremy.levallois@liris.cnrs.fr>
        4096 bit RSA key C6AAB4ABBCA07151, créé : 2014-05-19
(21)    Fabrice Théoleyre (CNRS / University of Strasbourg) <theoleyre@unistr
        2048 bit RSA key 5F994EAEED4DB315, créé : 2014-05-12, expire : 2016-05-12
(22)    umberto bortolozzo<umberto.bortolozzo@inln.cnrs.fr>
        2048 bit RSA key D29C564A5E0D29A5, créé : 2014-04-19, expire : 2019-04-19
(23)    Nicolas Schabanel <nicolas.schabanel@cnrs.fr>
        2048 bit RSA key 44C094C012A1D8D5, créé : 2014-03-05, expire : 2018-03-05
Keys 18-23 of 154 for "cnrs".  Entrez le ou les nombres, (S)uivant, ou (Q)uitter > Q

Exporter des clés

On peut exporter des clés depuis la ligne de commande avec --export --armor (sans armor, la sortie est inutilisable) :

gpg --armor --export tuto-gpg@22decembre.eu
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBFTghEQBEADfzfjVdOkH/AcydvfmHOd/QNdA1du2KCheGXfJusG9Ilg3NHZ3
0u7hXnL4GOTqnLSZrnWIDX31/gN3QX/5T5IZ2w1XLkEJjIUqmFQ9PJyMNJGHpZpT
...
RlHeLZXZWfn1eq/OgH1JfiHY1ISjMoytlGxPd4PbdOEj1vwd7zztmiYrAVH7KkrJ
ZPxuvaY+w8qZBQyQFrPA
=Hcrb
-----END PGP PUBLIC KEY BLOCK-----

Export en fichier :

gpg --output tuto.asc --armor --export tuto-gpg@22decembre.eu

Scripts divers et variés

L'intérêt d'utiliser la ligne de commande devient évident lorsqu'il s'agit de faire des trucs un peu compliqués, laborieux et/ou répétitifs.

Le plus évident est le cas de l'organisation d'un tour de clés. L'organisateur rassemble les clés des participants dans un dossier, fait tourner son script qui lui génère alors un document complet à envoyer à tous les participants.

À la fin du tour de clés, les participants eux aussi peuvent utiliser un script avec la liste des clés qu'ils souhaitent signer. Le script va les signer et les envoyer par courriel à leurs propriétaires respectifs.

À 100 participants par tour de clés, on apprécie !

Avec des scritps, on peut aussi filtrer du courrier, ou faire un ménage régulier du trousseau de clés.

Vérification des clés

On peut s'assurer que la clé a bien été générée correctement avec un outil sous Debian : hopenpgp

apt-get install hopenpgp-tools

Puis, en tant que simple utilisateur :

hkt export-pubkeys '<empreinte>' | hokey lint

Oui, quand j'indique , il faut bien remplacer par l'empreinte de votre clé, que votre gestionnaire de clé vous indiquera.
Si tout est vert, ou presque, alors c'est bon.