
Il n’est pas rare aujourd’hui que les administrateurs système soit amené à manipuler plusieurs dizaine de mots de passe, il existe, bien entendu, diversent façon de les “stocker”, comme par exemple le logiciel Keepass, permettant de gérer vos différents mots de passe. Il est cependant encore plus facile d’utiliser une authentification basée sur une clé publique.
Nous allons donc voir comment utiliser une authentification par clé ssh.
Cela facilitera l’administration des serveurs mais permettra également de mettre en place certains scripts. Comme par exemple la sauvegarde des données à partir d’un autre serveur
Pré-requis: Un serveur ssh fonctionnel et bien sur un client ssh, si vous travaillez sous linux ou sous Mac OS pas de problème vous devriez avoir le nécessaire d’installé.
Si vous ne disposez pas de ssh sur votre machine il suffit de l’installer:
Si vous êtes sous Windows, vous pouvez utiliser l’excellent puTTY qui est un client SSH ainsi que PuttyGen pour la génération de clés.
Nous allons partir du principe que notre utilisateur amartin souhaite se connecter à notre serveur en utilisant une authentification basée sur un couple clé publique / clé privée.
Pour mettre en place notre authentification nous allons devoir agir à la fois coté serveur mais également coté client.
Coté client:
Il est toutefois possible d’ajouter une protection sur cette clé en la protégeant par une passphrase qu’il sera nécessaire de saisir lorsque l’on souhaitera utiliser notre clé.
Pour commencer il va nous falloir générer une paire de clés pour notre utilisateur, il existe deux principaux algorithmes asymétriques de cryptage DSA et RSA, vous pouvez utiliser l’un ou l’autre.
Cette commande crééra une clé publique ET une clé privée, (si l’option “-f” n’est pas spécifiée, par défaut dans le répertoire .ssh de votre compte utilisateur).
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in amartin.
Your public key has been saved in amartin.pub.
The key fingerprint is:
5c:ae:c4:36:79:fd:f6:4e:64:75:77:92:26:19:3a:ff Alexandre Martin
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| . o . |
| + o + =|
| o + + o .=|
| S o o o|
| o + o o |
| . E .|
| . o |
| .o|
+-----------------+
Vous l’aurez compris le fichier “amartin” est notre clé privée, il faut donc faire très attention à elle et ne pas la perdre.
Il existe la possibilité de renseigner une passphrase, celle-ci devra être saisie chaque fois que vous voudrez utiliser votre clé, ceci afin d’éviter que n’importe qui ne puisse utiliser votre clé si vous vous la faites voler.
Modifier la passphrase d’une clé privée SSH
| Il est tout à fait possible de modifier la passphrase d’une clé privée, pour se faire il suffit de saisir la commande |
Enter old passphrase:
Key has comment 'amartin'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
Coté serveur:
Une fois cette paire de clés générée, il faut déposer notre clé publique sur le serveur sur lequel nous souhaitons pouvoir nous authentifier.
Pour se faire nous récupérons notre clé publique amartin.pub (par défaut id_dsa.pub) et nous l’a déposons sur le serveur.
Une fois cela fait il faut ajouter son contenu au fichier contenant les clés autorisées à se connecter à notre serveur pour l’utilisateur voulu.
Nous allons maintenant autoriser les connexions au serveur pour notre machine cliente. Dans notre cas nous souhaitions pouvoir nous connecter en tant que root avec notre clé amartin, nous allons donc ajouter le contenu de notre clé publique dans le fichier authorized_keys2 (pour un Debian ou une Ubuntu, authorized_keys pour les autres).
Nous ajoutons donc la clé au fichier /root/.ssh/authorized_keys2:
Pour éviter tout problème nous allons donc restreindre l’accès à ces différents fichiers:
chmod 600 ~/.ssh/authorized_keys
Connexion:
Nous pouvons à présent directement nous connecter au serveur avec notre clé en utilisant la commande suivante:
L’option “-i” indiquant vous l’aurez compris la clé privée à utiliser pour initier la transaction avec le serveur.
About Guewen FAIVRE
- Web |
- More Posts (35)
Pour info, il existe la commande ssh-copy-id pour copier sa clé publique sur un serveur distant qui est bien plus pratique :d