Utiliser une clé SSH avec PuTTY sous Windows

Le client SSH PuTTY pour Windows utilise un format de clé différent de celui du client OpenSSH. Pour utiliser PuTTY, il faut générer une nouvelle clé SSH publique et privée, ou encore convertir une clé OpenSSH privée existante.

Le protocole SSH (Secure Shell) permet l’authentification des clients grâce à la combinaison d’un nom d’utilisateur et d’un mot de passe, ou d’une paire de clés comprenant une clé publique et une clé privée. Cette méthode à la fois fiable et sûre permet de comparer la clé publique à son équivalent privé. Il n’est alors pas nécessaire de saisir un mot de passe dans le cadre de l’authentification. Vous avez toutefois la possibilité de prendre une mesure de sécurité supplémentaire et de chiffrer la clé privée à l’aide d’une phrase de passe.

Prérequis

  • Client SSH PuTTY pour Microsoft Windows
  • Serveur distant avec accès OpenSSH

Installer PuTTY et PuTTYgen

Pour convertir une clé OpenSSH sous Windows et vous connecter ensuite à un serveur en passant par le protocole SSH, vous devez utiliser le client PuTTY et l’outil qui l’accompagne, PuTTYgen. Vous pouvez télécharger ces deux outils sous la forme d’un programme d’installation pour Windows en passant par le site de téléchargement PuTTY.

Une fois le programme d’installation PuTTY pour Windows téléchargé, effectuez un double-clic sur le fichier exécutable depuis votre dossier « Téléchargements » et suivez les instructions données par l’assistant d’installation. Les paramètres par défaut sont adaptés à la plupart des installations. Une fois le processus terminé, PuTTY et PuTTYgen figurent normalement dans la liste de vos programmes Windows.

Utiliser les clés publiques et privées existantes

Si vous avez déjà une clé publique et une clé privée OpenSSH, copiez la clé privée du nom de « id_rsa » sur votre bureau Windows. Pour ce faire, vous pouvez copier et coller le contenu du fichier ou utiliser le client SCP (PSCP, par exemple) fourni lors de l’installation de PuTTY, ou encore FileZilla.

Depuis la liste des programmes Windows, lancez ensuite PuTTYgen.

  1. Dans le menu du générateur de clés PuTTY, cliquez sur « Conversions » (Convertir) et sélectionnez « Import key » (Importer une clé).
  2. Accédez à votre clé privée OpenSSH avant de cliquer sur « Open » (Ouvrir).
  3. Sous « Actions » (Actions) et « Save the generated key » (Sauvegarder la clé générée), choisissez alors l’option « Save private key » (Sauvegarder la clé privée).
  4. Vous avez la possibilité de choisir une phrase de passe pour protéger votre clé privée.
  5. Il ne vous reste plus qu’à enregistrer la clé privée sur votre bureau, en utilisant le nom « id_rsa.ppk ».
Générateur de clés PuTTY
Le générateur de clés PuTTY permet d’utiliser des clés OpenSSH existantes.

Si la clé publique est déjà rattachée au fichier « authorized_keys » (clés autorisées) sur le serveur SSH concerné, vous pouvez utiliser votre clé privée dès lors que vous êtes connecté au serveur. Dans le cas contraire, vous devez commencer par copier la clé publique sur le serveur.

Créer de nouvelles clés SSH publiques et privées avec PuTTY

Depuis la liste des programmes Windows, lancez PuTTYgen et suivez les étapes ci-dessous :

  1. Sous « Parameter » (Paramètres) et « Number of bits in a generated key » (Nombre de bits dans une clé générée), augmentez le nombre de bits jusqu’à atteindre la valeur minimale de 2048.
  2. Sous « Actions » (Actions), puis « Generate a public/private key pair » (Générer une paire de clés privée/publique), cliquez sur « Generate » (Générer).
  3. Le programme vous demande alors de déplacer le curseur de votre souris dans la fenêtre du générateur de clés PuTTY en tant que générateur aléatoire, afin de générer la clé privée.
  4. Dès que les informations concernant la clé s’affichent, cliquez sur « Save the generated key » (Sauvegarder la clé privée) sous « Actions » (Actions).
  5. Vous pouvez à présent enregistrer la clé privée sur votre bureau en utilisant le nom « id_rsa.ppk ».
  6. Le champ sous « Key » (Clé) ou « Public key for pasting into OpenSSH authorized_keys file: » (Clé publique à coller dans le fichier « authorized_keys » OpenSSH) contient la clé publique.
PuTTYgen
L’outil PuTTYgen permet de générer de nouvelles clés privées et publiques.

Copier des clés publiques sur le serveur

La clé SSH publique se trouve dans le champ « Key » (Clé), sous « Public key for pasting into OpenSSH authorized_keys file: » (Clé publique à coller dans le fichier « authorized_keys » OpenSSH). Le nom de la clé publique commence par « ssh-rsa », puis vient une chaîne de caractères.

  1. Sélectionnez l’intégralité de la clé publique dans le générateur de clés PuTTY, et copiez le texte.
  2. Lancez PuTTY avant de vous connecter au serveur distant correspondant en utilisant vos identifiants.
  3. Utilisez ensuite l’éditeur de texte de votre choix pour créer et/ou ouvrir le fichier authorized_keys (clés autorisées) :
vi ~/.ssh/authorized_keys
  1. Collez la clé publique déjà copiée dans le fichier authorized_keys (clés autorisées).
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBp2eUlwvehXTD3xc7jek3y41n9fO0A+TyLqfd5ZAvuqrwNcR2K7UXPVVkFmTZBes3PNnab4UkbFCki23tP6jLzJx/MufHypXprSYF3x4RFh0ZoGtRkr/J8DBKE8UiZIPUeud0bQOXztvP+pVXT+HfSnLdN62lXTxLUp9EBZhe3Eb/5nwFaKNpFg1r5NLIpREU2H6fIepi9z28rbEjDj71Z+GOKDXqYWacpbzyIzcYVrsFq8uqOIEh7QAkR9H0k4lRhKNlIANyGADCMisGWwmIiPJUIRtWkrQjUOvQgrQjtPcofuxKaWaF5NqwKCc5FDVzsysaL5IM9/gij8837QN7z rsa-key-20141103
  1. Enregistrez le fichier, puis fermez l’éditeur de texte.
  2. Modifiez ensuite les autorisations du fichier « authorized_keys » (clés autorisées) de manière que le fichier n’accorde aucun droit d’accès en écriture de groupe.
chmod 600 ~/.ssh/authorized_keys
  1. Vous pouvez à présent vous déconnecter du serveur distant.

Connexion au serveur avec une clé privée

Vous pouvez maintenant tester le fonctionnement de l’authentification par clé SSH. Pour ce faire, fermez PuTTYgen et relancez le client PuTTY.

  1. Sous « Session » (Session), renseignez le nom de l’hôte ou l’adresse IP du serveur distant correspondant.
  2. Suivez ce chemin : « Connexion » > « SSH » > « Auth ».
  3. Sous « Authentication parameters » (Paramètres d’authentification), puis « Private key file for authentication » (Fichier de clé privée pour l’authentification), cliquez sur « Browse » (Parcourir).
  4. Cherchez la clé privée « id_rsa.ppk » ; lorsque vous l’avez trouvée, cliquez sur « Open » (Ouvrir).
  5. Pour finir, cliquez une nouvelle fois sur « Open » (Ouvrir) pour vous connecter au serveur distant grâce à l’authentification basée sur une paire de clés.
Connexion au serveur avec une clé privée
Avec le client SSH PuTTY, testez ensuite le fonctionnement de l’authentification par clé.