Clés SSH
Page enfant de SSH
SSH utilise la cryptographie à clé publique (CP) ou cryptographie asymétrique pour sécuriser les connexions. Dans ce mode de cryptage, la clé qui est privée reste secrète et l'autre clé peut être divulguée à d'autres utilisateurs. Tous peuvent utiliser la clé publique pour encoder un message, mais seul le propriétaire de la clé privée peut utiliser sa clé privée pour le décodage. La clé publique permet aussi de valider l'identité d'un utilisateur. Voyons un exemple : Robert veut communiquer avec Alice qui dit posséder une clé privée, mais il veut s'assurer qu'Alice est bien celle qui le prétend. Robert peut utiliser la clé publique d'Alice pour lui envoyer un message codé et si Alice peut prouver à Robert que son message est compris, nous pouvons au moins en conclure qu'Alice est effectivement propriétaire de la clé privée.
Les systèmes à CP sont au cœur des protocoles SSL et TLS qui protègent la plupart de communications sur l'internet, dont les sites https.
CP a plusieurs usages sur nos grappes :
- Quand vous vous connectez à une grappe, votre client SSH utilise habituellement la clé publique de cette grappe pour vérifier que la connexion se fait au bon serveur.
- Une session cryptée peut être établie pour prévenir l'interception des messages échangés.
- Le serveur distant peut utiliser votre clé publique (qui se trouve dans le fichier .ssh/authorized_keys de votre répertoire /home) pour vérifier votre identité. Si cette vérification échoue, le serveur distant peut vous demander votre mot de passe. Il s'agit en réalité d'un mécanisme d'identification secondaire qui est plus risqué puisque votre mot de passe est potentiellement rendu vulnérable.
Nous vous recommandons fortement d'utiliser l'authentification par CP. Il vous faudra travailler un peu plus sur la configuration, mais le résultat sera plus sécuritaire et plus pratique.
Pour l'authentification à l'aide de ces clés :
- Générez la paire de clés (la clé privée et la clé publique).
- Copiez la clé publique de cette paire sur les serveurs auxquels vous voulez vous connecter et ajoutez la clé publique à votre fichier
authorized_keys
(voir Utiliser des clés SSH sous Linux). - Vérifiez les permissions (voir Utiliser des clés SSH sous Linux).
- Testez.
En générant une paire de clés, utilisez une phrase de passe robuste. Si vous n'utilisez pas une phrase de passe robuste ou si quelqu'un peut la deviner, tous ceux qui peuvent obtenir une copie de votre clé privée pourront se connecter aux serveurs qui utilisent cette clé publique pour vous authentifier.
La procédure pour générer une paire de clés SSH varie selon le système d'exploitation que vous utilisez. Pour les clients Windows PuTTY ou MobaXterm, consultez Générer des clés SSH sous Windows. Dans un environnement Unix (Linux, Mac Sous-système Windows pour Linux ou Cygwin), consultez Utiliser des clés SSH sous Linux. Si vous utilisez les ressources infonuagiques, il existe une méthode OpenStack pour créer des clés; voyez Paires de clés SSH dans la page Cloud : Guide de démarrage.
Voyez aussi ces courtes vidéos sur comment configurer les clés SSH.