Outils du site

Il y a des fanatiques de sang-froid: ce sont les juges qui condamnent la mort ceux qui n'ont d'autre crime que de ne pas penser comme eux; et ces juges-là sont d'autant plus coupables, d'autant plus dignes de l'exécration du genre humain, que, n'étant pas dans un accés de fureur comme les Clément, les Chastel, les Ravaillac, les Damiens, il semble qu'ils pourraient écouter la raison. [Voltaire]

04-linux:30-ssh:10-authentification_par_cle

Ceci est une ancienne révision du document !


Authentification

Voir man ssh

Principe

Pour éviter de se logger en entrant un mot de passe sur la machine distante il faut mettre en place une authentification par clé :

  • que l'utilisateur se génère un couple (public, privé) de clés d'authentification
    • Sur la machine locale
    • Sur la machine distante
  • que la machine distante connaisse la clé publique de l'utilisateur de la machine locale

Le mécanisme d'authentification s'assure lors de la connexion que la clé privée de l’utilisateur correspond à la clé publique connue du serveur distant.

Mise en oeuvre

La commande ssh-keygen génère une couple de clés privée et publique pour l'authentification d'un compte utilisateur.

Pour générer les clés d'un utilisateur :

ssh-keygen -C «user»-«Machine»-«date» (Clé RSA) –> Répondre “return” aux questions (valeurs par défaut)

La paramètre -C permet de fixer un commentaire associé à la clé. «user»-«Machine»-«date» est un choix personnel.
La clé privé ne doit jamais être diffusée à qui que ce soit.

Ces clés sont stockées dans le dossier ~/.ssh

roge@raspi ~ $ ll .ssh
total 8
-rw-r--r-- 1 roge roge    0 Aug  6 00:27 authorized_keys   --> Liste des clé publiques authorisées pour ce compte
-rw------- 1 roge roge 1679 Aug  6 00:26 id_rsa            --> clé privée
-rw-r--r-- 1 roge roge  388 Aug  6 00:26 id_rsa.pub        --> clé publique (à diffuser)

Pour utiliser l'authentification par clé sur une machine distante il faut copier sa clé publique sur la machine distante à la fin du fichier .ssh/authorized_keys :

cat ~/.ssh/id_dsa.pub | ssh -p port user@host “cat - ».ssh/authorized_keys”

L'authentification par clé est nécessaire pour tous les scripts batch qui font du ssh.
En cas de message “Permissions 0644 for '/home/xxx/.ssh/id_rsa' are too open.”

chmod 600 ~/.ssh/id_rsa

Pour les machines Windows, voir PuTTY : Accès à une machine Linux depuis Windows avec PuTTY.

Dernière modification : 2017/10/06 23:40