- Avoir une clé privée sur la machine cliente
- Que la clé publique correspondante à la clé privée soit connue par le serveur
Attention :
Pour des raisons de sécurité, la clé privée ne doit jamais transiter par des moyens non protégés. Pour cette raison, il est généralement préférable de créer un couple de clés (privée & publique) sur la machine cliente, puis d'envoyer la clé publique sur le serveur. Il est toute fois possible de générer les clés sur le serveur et de fournir la clé privée aux clients, en étant particulièrement attentif aux problématiques de sécurité de transmission des clés privées.
Pour des raisons de sécurité, la clé privée ne doit jamais transiter par des moyens non protégés. Pour cette raison, il est généralement préférable de créer un couple de clés (privée & publique) sur la machine cliente, puis d'envoyer la clé publique sur le serveur. Il est toute fois possible de générer les clés sur le serveur et de fournir la clé privée aux clients, en étant particulièrement attentif aux problématiques de sécurité de transmission des clés privées.
Information :
Le processus de création des clés est différent selon le système utilisé, mais les clés peuvent être générées sous Linux pour être utilisées sous Windows par exemple. Il est possible de les convertir pour qu'elles soient compatibles avec les logiciels utilisés.
Le processus de création des clés est différent selon le système utilisé, mais les clés peuvent être générées sous Linux pour être utilisées sous Windows par exemple. Il est possible de les convertir pour qu'elles soient compatibles avec les logiciels utilisés.
Pour créer une paire de clés (privée & publique) sur Linux ou OS X, entrer dans un terminal :
Code : Tout sélectionner
ssh-keygen
Le programme demandera ensuite une passphrase (mot de passe). La passphrase protège la clé privée, et sera demandée lors de son utilisation.Il est possible d'enregistrer cette passphrase pour ne pas avoir à la taper plusieurs fois dans une même session, ce point sera abordé au chapitre suivant.
Information :
Il est possible de ne pas mettre de passphrase (dans ce cas, il suffit de valider cette étape sans rien entrer), mais en cas de vol ou perte de la clé privée, elle ne présenterait plus la moindre sécurité pour se connecter au serveur. Il est donc fortement recommandé d'utiliser une passphrase.
Une fois l'étape de la passphrase validée, le programme indique que la clé privée (identity) et la clé publique ont été générées, ainsi que leurs emplacements. Il est possible de ne pas mettre de passphrase (dans ce cas, il suffit de valider cette étape sans rien entrer), mais en cas de vol ou perte de la clé privée, elle ne présenterait plus la moindre sécurité pour se connecter au serveur. Il est donc fortement recommandé d'utiliser une passphrase.
L'empreinte et la représentation graphique de la clé publique sont également affichées.
Et c'est tout pour la génération des clés !
Il est possible, en jouant avec les options de ssh-keygen, de changer plusieurs paramètres, tels que le type de chiffrement ou la longueur de la clé.
FIX ME :
Ajouter un descriptif des options les plus utiles
Ajouter un descriptif des options les plus utiles
L'explication donnée ici utilise PuTTY, mais le principe est généralement le même avec les différents clients SSH existant sous Windows.
FIX ME :
Expliquer la création des clés avec PuTTY
Expliquer la création des clés avec PuTTY
La clé publique doit maintenant être transmise au serveur, afin que ce dernier soit en mesure d'accepter les connexions demandées avec la clé privée.
Par défaut, tout du moins sur les systèmes dérivant de Debian, les clés publiques se trouvent dans ~/.ssh/authorized_keys (une clé par ligne). Il faut donc ajouter la nouvelle clé publique dans ce fichier. Il existe plusieurs solutions pour ce faire (modification du fichier via un éditeur de texte et un copier/coller, etc...).
Le plus rapide, s'il existe déjà un moyen de se connecter en ssh au serveur (avec un mot de passe ou une autre clé par exemple) est de lancer la commande suivante (sur le poste client) :
Code : Tout sélectionner
cat /local/path/to/public/key.pub | ssh user@server "cat >> /distant/path/to/authorized_keys"
Code : Tout sélectionner
cat ~/.ssh/id_rsa.pub | ssh user@server "cat >> ~/.ssh/authorized_keys"
FIX ME :
Voir s'il est possible de modifier le chemin du fichier des clés publiques autorisées
Voir s'il est possible de modifier le chemin du fichier des clés publiques autorisées