Pour que l’authentification par clé fonctionne, il y a 3 composants qui entre en jeu :
Une clé publique : c’est elle qui sera communiqué au système hôte sur lequel on souhaite pouvoir se connecter.
Une clé privée : elle permet de prouver son identité aux serveurs. A garder bien secret et ne jamais la communiquer !
Une passphrase : Permet de sécuriser la clé privée avec une phrase qui fait office de "mots de passe".
1° - Création de la paire de clé publique / privé
Pour créer le couple de clé, nous allons utiliser l’outil ssh-keygen.
Il existe 2 types de clé :
RSA : Rivest Shamir Adleman
Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé publique, très utilisé dans le commerce électronique, et plus généralement pour échanger des données confidentielles sur Internet. Cet algorithme a été décrit en 1977 par Ron Rivest, Adi Shamir et Len Adleman, d’où le sigle RSA. RSA a été breveté [1] par le MIT en 1983 aux États-Unis d’Amérique. Le brevet a expiré le 21 septembre 2000.
Plus d’info sur wikipedia : http://fr.wikipedia.org/wiki/Rivest...
DSA : Digital Signature Algorithm
Digital Signature Algorithm, plus connu sous le sigle DSA, est un algorithme de signature numérique standardisé par le NIST aux États-Unis, du temps où le RSA était encore breveté. Cet algorithme fait partie de la spécification DSS pour Digital Signature Standard adoptée en 1993 (FIPS 186). Une révision mineure a été publiée en 1996 (FIPS 186-1) et le standard a été amélioré en 2002 dans FIPS 186-2. Il est couvert par le brevet n° 5 231 668 aux USA (26 juin 1991) attribué à David Kravitz, ancien employé de la NSA, et il peut être utilisé gratuitement.
Plus d’info sur wikipedia : http://fr.wikipedia.org/wiki/Digita...
Il existe également plusieurs longueurs de clé, on part du principe "plus elle est longue, plus elle sera dur à casser". Voici les différentes longueurs les plus courament utilisées : 1024, 2048, 4096, 8192.
La longueur 1024 est à proscrire dans le sens ou certain expert estime que d’ici quelque temps elle sera cassé. Personnelement je tape directement dans le 4096 voir 8192 (j’suis un peu parano des fois mais bon ça m’a sauvé la vie plusieurs fois ![]()
Donc pour créer une paire de clé de longeur 4096 utilisant l’algoritme RSA, voici :
# ssh-keygen -t rsa -b 4096 -C user@domain.tldLe chemin ou stocker la clé vous sera demandé, puis la passphrase. Ce qui donne en utilisation réelle :
wimpy@cdulux:~/.ssh$ ssh-keygen -t rsa -b 4096 -C toto@freenux.fr
Generating public/private rsa key pair.
Enter file in which to save the key (/home/wimpy/.ssh/id_rsa): /home/wimpy/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/wimpy/.ssh/id_rsa.
Your public key has been saved in /home/wimpy/.ssh/id_rsa.pub.
The key fingerprint is:
b8:19:df:60:f2:eb:34:df:e3:3a:93:f8:18:21:1d:6e wimpy@freenux.frDonc 2 fichiers seront générés suite à cette commande :
id_rsa ou id_dsa dans le cas d’une clé RSA ou DSA qui contient la clé privée. Cette clé ne doit pas être dévoilé !!! Elle garanti votre identité
id_rsa.pub ou id_dsa.pub dans le cas d’une clé RSA ou DSA qui contient la clé publique. Cette clé sera mise sur les serveurs dont l’accès est voulu.
2° : Configuration du serveur
ENsuite il faut s’assurer que le serveur SSH gère l’authentification par clé. Pour cela éditer le fichier /etc/ssh/sshd_config et modifier les paramètres suivant :
Décommenter ou ajouter la ligne suivante :
PubkeyAuthentication yesPuis il suffit de relancer le serveur SSH : Pour debian-like :
/etc/init.d/ssh restartPour redhat-like :
service sshd reload3° : mise en place de la clé publique sur le serveur
La aussi rien de bien compliquer ! Dans le principe, il suffit de mettre le contenu de la clé publique dans le fichier authorized_keys du compte distant sur lequel on veut se connecter.
cat ~/.ssh/id_rsa.pub | ssh utilisateur@serveur "cat - >> ~/.ssh/authorized_keys"[Commande barbar a détaiilé
]
4° : Ne plus avoir a retaper la passphrase à longueur de journée
Dans un 1er temps, lancer le ssh-agent afin que le deamon tourne :
wimpy@cdulux:~$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-FVnYX11105/agent.11105; export SSH_AUTH_SOCK;
SSH_AGENT_PID=11106; export SSH_AGENT_PID;
echo Agent pid 11106;Ensuite il faut ajouter votre clé privé pour faire connaitre à ssh-agent la passphrase associé à la clé :
wimpy@cdulux:~$ ssh-add .ssh/id_rsa
Enter passphrase for .ssh/id_rsa:
Identity added: .ssh/id_rsa (.ssh/id_rsa)Et voilou, plus besoin de la retapper à chaque connection ![]()


Commentaires