Second Serie | Part 15 : Using gpg in command line
This article is much more targeted at Unix-like users, like GNU/Linux, MacOS and BSD. You all have termial emulators like konsole, Yakuake, Guake or Terminal under Mac. Everything described in this article are to be done in a termial.
- Part 8 : Sign files
- Part 9 : Encrypt files
- Part 10 : GPG Conf’
- Part 11 : Some details about keys and maths
- Part 12 : Export and import public and private keys
- Part 13 : Various security aspects
- Part 14 : Publish a signing policy
- Part 15 : Using gpg in command line
- Part 16 : Going to a gpg signing party
Gpg –version
It is better to use the current gpg release : 2, rather than the legacy as I told you in one of the articles in the first serie. It is what I do in this whole article, even though I don’t write the release number.
As usual, using gpg in command line is extremely powerfull. Opposite, there are a number of things you cannot do in graphical interface.
Me being french, I setup my computer in this language. This is why a lot of gpg’s answer are in french. But you can recognize what I do. No worries. The manual and the help are in english.
Basic commands summary
It remains a summary. The best way to know about all possibilities is still to call the manual, or use the –help* option (because the manual can still be complicated). Yet I feel there is need for little explanation, and it’s the reason behind this tutorial.
You run the command this way:
gpg --option
As said before, this will tell you about the various possibilities:
gpg --help
Just a cheat sheet
If you followed my advices about gpg conf’, gpg shall give you long id and fingerprints when asked keys listings:
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]
The first element of the identifier indicates the length of the key (4096 bits here) and type (RSA in this case), then the identifier itself, after which the date of creation, and finally the expiration date in brackets.
Signing and other stuff are done editing the key, no matter if it’s your ( you have the private key) or not:
gpg --edit 'id clé'
You can use the mail address to the key, but you can get the wrong key, even if it has been revoked.
Best way is still to use the key identifier. Here is the tutorial key for example:
gpg --edit '42E0A02EF1C935A4'
You are then granted an internal command line to gpg:
gpg>
Where you can again have detailled options:
gpg> help
Let’s start
Le but de cet article, c’est de vous permettre de maîtriser la ligne de commande de gpg.
Caution
I advise you to save your private keys if you do not have a backup now (and the public keys of your usual correspondent) following the guidance provided in these previous articles.
I propose simply to manipulate the key and see the different possibilities offered by the gpg command line. And to do that, we’ll create a key, just for that purpose.
Create a key
In your terminal, just type it (or copy-paste):
gpg --full-gen-key
This command will give you all the available choices rather than defaults.
[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
Here it is fine to use the default choice, because we want to see usual choices.
les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 1024
As it is a key to simply play and test the software, I won’t ask for full power, but instead small size. 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
Ten days validity.
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
It asks me for a mail address. It is actually optionnal. Same as the comment. You can also set a passphrase or let it free.
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 ~]$
And voila, we now have a 1024 key to play with. You can check with -K, which display private keys on the 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]
Edit
So, let’s play a bit with the bits… Launch gpg with –edit-key and your new key’s identifier.
gpg --edit-key D0C3AD44AE028A5A
Here is the gpg command line:
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>
We are first going to modify validity date with 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
The key is now valid 30 days instead of 10.
ssb rsa1024/0A7946205EB6EC32
créé : 2016-05-05 expire : 2016-05-15 utilisation : E
[ ultime ] (1). Stéphane Guedon <spamtrap@22decembre.eu>
But the subkey is still the same date.
A second subkey
We are going to play a bit more while creating a second subkey.
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
It is possible to choose between the various key types…
les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 1024
… and the key size…
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
… or validity.
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>
And we now have a key with two subkeys, which all have different validity periods.
Add identities
We can add identities on the key with adduid :
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>
When you leave the command line with save, your new subkeys will be signed and granted ultimate trust, because you have the private key and are acting as the legitimate owner of it (which you are). Yet, it won’t be signed with your default key.
Select identities or keys
You can selet an identity with uid immediatly followed by the id number:
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>
You can select several of them:
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>
Here, I selected the two last ones to suppress them:
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>
Now the key has just one identity.
You can select subkeys the same way with key followed by the key number. To release the selection, just use key alone.
Sign identities
You can sign one or several identities. For example I previously selected the two last keys. I am now going to sign them with my default key. It is also possible to sign locally for example:
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
Gpg asks for the passphrase, then signs.
gpg> save
You can check the signatures when editing the key again with 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.
You can see only the two selected identities have been signed.
Trust
You can also modify the trust level granted to the owner with 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 : if you need to remind what is the difference between the signature and the trust level, this article is for you : Sign keys
You see, lots of things to do.
Use gpg right from the command line
You can do things without using gpg internal command line.
For example …
Sign
You can sign a key:
gpg --sign-key tuto-gpg@22decembre.eu
You can also sign with a key that is not your default key:
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
Search keys on servers
If you have a keyserver in your conf’, then you can search for keys:
[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 >
Import the keys you want with their number. Here I get two keys, 3 and 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
Export keys
You can export keys from the command line with –export –armor (the output is unusable without armor):
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 in a file :
gpg --output tuto.asc --armor --export tuto-gpg@22decembre.eu
Scripts
As soon as you have to do complicated or boring/repetitive things, then scripting comes at hand.
The most obvious is organizing a signing-party. The organiser gather the keys in a directory or a file, run the script which will then create a complete document to be sent to the attendees.
After the end of the signing-party, attendees will also use a script with the list of keys they wish to sign. The script will sign and send them by mail to their respective owners.
With 100 attendees per signing-party, it’s worth doing it.
Scripting can also filter mail, or manage the keyring.
Checking the keys
You can check the key is well generated with correct settings with a tool under Debian (or other distros): hopenpgp
apt-get install hopenpgp-tools
Then, as casual user:
hkt export-pubkeys '<fingerprint>' | hokey lint
Yes, when I write , you have to replace by the fingerprint you wish to check. If everything is green, it’s all good.