13. GNUpg en ligne de commande

Principe

Gnupg permet de chiffrer et de signer ses mails. Pour cela, il est nécessaire pour chaque correspondant de disposer de deux clés liées : une clé privée et une clé publique. Les clés publiques sont disponibles pour tout un chacun. Les clés privées ne sont à remettre à personne. Avec une clé publique, on peut chiffrer un message qui ne pourra être déchiffré que par le propriétaire de la clé privée correspondante. Avec la clé privée, on peut chiffrer un message qui ne pourra être déchiffré que par la clé publique.

Ainsi, pour vous envoyer un message chiffré, votre correspondant va le chiffrer avec votre clé publique. Comme vous êtes le seul à posséder la clé privée correspondante, vous êtes le seul à pouvoir le déchiffrer.

Dans l’autre sens, pour envoyer à votre correspondant un message chiffré, vous aller utiliser sa clé publique. Comme il est le seul à disposer de la clé privée correspondante, lui seul pourra déchiffrer votre message.

Simultanément, pour vous identifier, il vous suffit de chiffrer votre message avec votre clé privée. Comme seule la clé publique correspondant à votre clé privée pourra le déchiffrer, vous serez obligatoirement identifié.

Installation

Vous pouvez réaliser l’installation par la commande :

apt-get install gnupg

En ne spécifiant pas la version que vous désirez, vous installerez GnuPG 2.x, soit la dernière version de GnuPG.

Il est important de bien spécifier les droits sur le dossier de configuration :

~/.gnupg

à l’aide des commandes :

chown -R $(whoami) ~/.gnupg/
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;

On spécifie ainsi que le répertoire et tous ses fichiers (-R) appartiennent à l’utilisateur ($(whoami)), puis que tout les fichiers ne sont accessibles en lecture et écriture qu’à l’utilisateur propriétaire (droits à 600 : rw) et que le répertoire lui-même est traversable (x) et accessible en lecture et écriture (rw) pour le propriétaire (droits à 700 : rwx).

Après son installation, vous disposerez d’un ensemble de commandes pour lesquelles vous pourrez trouver de l’aide avec :

man pgp

Par exemple, vous pourrez lister l’ensemble des clés dont vous disposez avec :

gpg --list-keys

Pour trouver les clés publiques de vos correspondants, pour autant qu’ils les aient publiées sur un serveur de clés, on utilise :

gpg –search-key non_du_correspondant

Pour envoyer une clé publique sur le serveur de clés, on utilise :

gpg --send-keys numero_de_la_cle

Utilisation avec mutt

L’utilisation de pgp avec mutt est immédiate. Si un message vous est remis chiffré, en l’ouvrant votre phrase de chiffrement vous sera demandée pour pouvoir le lire. De plus, s’il est signé, cela sera mentionné au bas du mail.

Pour récupérer la clé publique de votre correspondant, il suffit de presser sur : Ctrl-K. Mutt, va alors chercher celle-ci et l’importer dans votre trousseau de clés.

Pour chiffrer un mail, il faut presser la touche p, puis pour choisir de chiffrer et signer la touche d et enfin l’envoyer avec y. Cela signifie aussi que pour répondre à un message signé et chiffré sans que la réponse soit chiffrée ou sans qu’elle ne soit chiffrée et signée, il suffit d’utiliser la touche p et de choisir l’une ou l’autre des solutions.

Remarquez que si vous vous retrouvez bloqué parce que mutt vous demande quelque chose que vous n’avez pas, comme le numéro de la clé d’un correspondant, vous pouvez ressortir de l’invite à la demande avec Ctrl-G.

Pour finir, une référence très claire :

https://ungeek.fr/gpg-et-le-chiffrement-pour-tous/#communiqueravecunkeyserver

10. Redimensionner en ligne de commande

Pour redimensionner un lot d’images en ligne de commande, on peut utiliser ffmpeg. Ce paquet (à installer sur votre système) dispose d’une commande nommée :

mogrify

Cette commande remplace les fichiers sources par les fichiers modifiée, à moins qu’on lui spécifie un chemin particulier à l’aide de l’option path :

mogrify -resize 50% -quality 80 -path mon_dossier *.jpg

Cette commande diminue la taille des images du répertoire courant par deux, les compresse à 80% et les place dans le répertoire mon_dossier.

Il faut relever qu’on peut spécifier la taille en pixels : -resize 800×600 par exemple.

On peut aussi modifier la résolution

convert -units PixelsPerInch -density 300 image.jpg

Finalement, on peut utiliser une autre commande ffmpeg pour obtenir des informations sur l’image :

identify -verbose image.jpg | grep Quality

Sans le -verbose, on obtient moins d’informations et le pipe (|) sur grep permet la recherche sur le mot Quality.

Voilà, évidemment un man sur mogrify ou ffmpeg vous en dira plus.

PDF et changement de formats

On vante souvent les formats vectoriels comme permettant de redimensionner facilement les images sans perte de qualité.

Sous Gimp, avec un format bitmap, l’agrandissement d’une image initialement prévue pour être imprimée sur une feuille A4 pour une impression sur une feuille A3 est simple. On peut passer par « Taille de l’impression » ou agrandir l’image directement dans la boite d’impression. Évidemment, la résolution diminuera.

Comment procéder au même agrandissement, de A4 en A3, pour un fichier vectoriel de type PDF ?

Sans entrer dans la compréhension des éléments qui composent un fichier PDF, le but de cet article est simplement de présenter un outil permettant un tel changement de format simplement.

Cet outil se nomme :

page-crunch
L’interface graphique de page-crunch

Tout fonctionne avec des réglages minimaux comme ceux qu’on peut voir sur la figure ci-dessus.

Différentes options sont disponibles au surplus de ce changement de format comme la réalisation d’un livre A5 par une impression de pages correctement placées pour être imprimées en recto-verso sur des feuilles A4, puis assemblées et agrafées sur la pliure centrale.

Mais ceci est une autre histoire.

3. Comment relever ses mails en ligne de commande

Dans la partie 2, on a vu comment installer et configurer les outils nécessaires pour relever ses mails en ligne de commande. Essentiellement, il s’agit de fetchmail et Mutt.

Ainsi, pour relever ses mails, on utilise la suite de commandes suivantes :

fetchmail -kv -m "/usr/bin/procmail -d %T" & mutt -y

Pour rappel, succinctement, fetchmail/procmail va relever les mails et les distribuer dans les boites aux lettres (k laisse les messages sur le serveur, v rend fetchmail verbeux et m les envoie à procmail pour le tri). Puis, on lance mutt (y pour avoir les boites aux lettres).

Il faut maintenant apprendre à utiliser mutt.

De manière générale, si à la ligne de commande correspond un réel gain de temps, il est évident qu’il faut en apprendre la philosophie. Avec elle, lire attentivement, posément, est un impératif. Mémoriser des équivalents claviers est nécessaire, même s’il ne faut pas en exagérer la difficulté. Avec des interfaces graphiques la mauvaise réactivité permet de trouver normal de devoir parcourir les menus presque au ralenti. En ligne de commande , comme tout va plus vite, on a parfois l’impression d’exigences plus élevées. Ce n’est pas le cas évidemment et si comme avec tout logiciel il faut un certain temps pour être à l’aise, il n’est pas nécessaire de le faire rapidement et d’envisager de tout connaître.

On va donc ici donner quelques manipulations simples pour s’en sortir au mieux. Ensuite, à chacun de rechercher les fonctions que son usage réclame. La maxime RTFM (read the fucking manuel) sera donc de mise.

Lorsque mutt est lancé avec l’option -y, on arrive directement sur les différentes boites aux lettres.

Relevons cependant quelques éléments pratiques qui pourraient poser des problèmes :

  • Pour effacer des messages, il suffit de les marquer de la lettre « D » en pressant la touche <d> sur le message sélectionné. C’est simple. Mais, il faut relever que quand le message est marqué « D », il n’est plus possible de le sélectionner. Annuler l’effacement semble donc problématique. La solution est de se positionner dans la liste des messages sur le message suivant en date qui n’a pas été effacé et de presser la touche <u>. Ainsi, le message effacé ne le sera plus.
  • Quand on lance mutt par la commande <mutt -y>, on obtient la liste des boîtes aux lettres. Quand on a choisi d’en consulter une et qu’on est sur la liste des messages qu’elle contient, pour revenir aux boîtes aux lettres, il suffit de presser la touche y.

Voici enfin une liste des équivalents claviers qui permettent de gérer au mieux vos mails :


? pour obtenir de l’aide

t pour modifier la liste des destinataires,
c pour modifier la liste des personnes en Cc,
b pour modifier la liste des personnes en Bcc,
s pour modifier le sujet,
e pour rééditer le message,
a pour attacher des fichiers au mail,
p pour accéder aux fonctions de cryptage et de signature de GnuPG (voir ci-dessous),
q pour annuler l’envoi du mail,
y pour envoyer le mail.
r pour répondre à l’expéditeur du mail sélectionné,
g pour répondre à l’expéditeur et aux autres destinataires du mail sélectionné,
Tab pour aller au mail non lu suivant,
v pour faire la liste des fichiers attachés d’un mail puis s pour les détacher et les enregistrer sur le disque dur,
h pour afficher/cacher le message avec tous ses headers,
f pour transférer le mail sélectionné à quelqu’un,
d pour marquer le mail comme devant être effacé,
u pour annuler le marquage d’effacement,
F pour marquer/démarquer le message comme important, i.e. afficher un point d’exclamation au niveau du message,

a pour ajouter ou éditer l’entrée de l’expéditeur du message dans le carnet d’adresse,

$ pour réactualiser la boîte mail (effacer les messages marqués comme devant être effacés et afficher les messages qui viennent d’arriver),
G pour aller directement à la liste des boites mails,
o pour trier les messages de la boîte mail : il propose alors le choix entre un tri par date, par expéditeur, par destinataire, par sujet, par discussion (tri normal), etc…
w pour mettre un flag sur un message : il propose alors une liste des flags (cela permet notamment de remettre un message comme non-lu en remettant le flag N),
W pour enlever un flag ; par exemple W suivi de N marque comme lu le message,

q pour quitter Mutt.

8. Installer un shell particulier : zsh

Après avoir installé terminator, un émulateur de terminal, on peut vouloir utiliser un shell particulier, différent de bash. Nous allons voir ici comment installer et configurer quelque peu un autre shell que bash, le shell zsh.

Sous debian des paquets sont disponibles. Il s’agit de :

zsh zsh-common zsh-syntax-highlighting zsh-theme-powerlevel9k

qu’il faut installer avec apt-get.

Ensuite, on va installer un framework permettant de gérer la configuration de zsh :

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Cela va installer un fichier ~/.zshrc dans lequel il faut choisir le thème que nous allons utiliser : powerlevel9k. On le fait par :

echo 'source /usr/share/powerlevel9k/powerlevel9k.zsh-theme' >> ~/.zshrc

et on recharge le fichier de configuration de zsh :

source ~/.zshrc

Si cela ne devait pas fonctionner, une autre manière d’installer le thème powerlevel9k et de le rapatrier par :

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

Puis d’installer les fontes powerline par :

apt-get install fonts-powerline

et d’indiquer l’utilisation du thème dans le fichier ~/.zshrc par :

ZSH_THEME="powerlevel9k/powerlevel9k"

tout en n’oubliant pas de re-sourcer ce fichier :

source ~/.zshrc

On peut ensuite installer la coloration syntaxique par :

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $(ZSH_CUSTOM:-~/.oh-my-zsh/custom)/plugins/zsh-syntax-highlighting

et en déclarant le plugin dans le fichier ~/.zshrc :

plugins=( ... zsh-syntax-highlighting ... )

Enfin, pour que les indications du shell ne se trouvent pas sur la même ligne que ce qu’on va taper, il faut réaliser un passage automatique de la ligne en ajoutant au fichier de configuration de zsh (~/.zshrc) la ligne suivante :

POWERLEVEL9K_PROMPT_ON_NEWLINE=true

Beaucoup d’autres possibilités de configuration sont possibles. Une introduction intéressante a été donnée dans le numéro 217 de Linux Magazine de juillet-août 2018.

4. Terminator pour la ligne de commande

Pour générer ses mails, naviguer, mettre de l’ordre dans ses fichiers et plus encore en ligne de commande, il faut un bon émulateur de terminal. Terminator est connu pour permettre une configuration très souple et particulièrement bien adaptée à un tel travail.

Je vais ici présenter l’essentiel de ce qui est nécessaire pour pouvoir travailler confortablement avec cet outil.

Après installation par la commande :

apt-get install terminator

il faut passer par le menu de configuration. On lance donc terminator par le menu et on choisit ses « Préférences » par click droit sur celui-ci.

Ensuite, dans le menu global, sous « État de la fenêtre : », on choisit « Maximisé ». Ainsi, terminator s’ouvrira en mode plein écran.

Puis, on change l' »Arrière plan » du « Profil » par « Défaut », pour le mettre en mode « Transparent » à 0.7, soit avec 30% de transparence.

Avec un écran relativement grand, on peut demander à terminator de créer trois émulateurs au démarrage. Pour cela, on commence par ajouter/scinder nos émulateurs à l’aide des options de « Division » du menu contextuel sous le click droit. On configure donc notre fenêtre terminator comme on l’entend. Puis, toujours dans les préférences, on enregistre cette disposition comme celle par défaut dans le menu « Dispositions ». Attention, il ne faut pas ajouter une disposition, mais simplement presser le bouton enregistrer alors que la configuration par défaut est sélectionnée.

Et voilà, c’est simple, mais la configuration des dispositions peut s’avérer difficile par ajout. À vous de faire vos expériences.