Le protocole Secure Shell (SSH) est peut-être le moyen le plus connu d’établir une connexion sécurisée entre une machine cliente (votre ordinateur portable, votre téléphone ou votre ordinateur de bureau) et un serveur distant dans un bureau, un centre de données ou dans votre réseau domestique. Vous utiliserez probablement SSH si vous souhaitez accéder à la ligne de commande sur votre service d’hébergement Web ou sur un Raspberry Pi sans tête. SSH est disponible sous une forme ou une autre pour presque tous les systèmes d’exploitation et est souvent intégré au système d’exploitation.
La plupart des serveurs vous offrent le choix de vous connecter à SSH via un mot de passe ou via des clés SSH, qui sont plus sécurisées. La méthode de clé SSH utilise des clés publiques et privées générées par chiffrement pour créer une connexion chiffrée entre les appareils.
Notre clé publique est stockée sur la machine distante et une clé privée est stockée sur notre machine. Les deux clés SSH sont nécessaires pour établir une connexion sécurisée. Les clés peuvent également être utilisées avec des mots de passe pour ajouter un autre niveau de sécurité, mais elles peuvent également être utilisées sans, par exemple dans des processus automatisés.
Dans ce guide, nous apprendrons comment créer des clés SSH à l’aide de PuTTY, le client SSH le plus populaire, et à l’invite de commande Windows/au terminal Linux.
Préparation du serveur distant pour les clés SSH
Notre machine distante peut se trouver dans un centre de données géré par un service d’hébergement Web, notre bureau ou notre domicile. Généralement, les serveurs Linux tels que VPS et l’hébergement cloud auront SSH exécuté par défaut, en utilisant des mots de passe pour des connexions sécurisées. Si ce n’est pas le cas, vous devrez activer SSH via le panneau de contrôle de votre service VPS/cloud. Si vous utilisez un serveur domestique, il est possible qu’il ne soit pas installé. Si tel est le cas, suivez ces étapes avant de continuer.
1. Ouvrez un terminal et recherchez un service SSH en cours d’exécution sur la machine. Si le service SSH est en cours d’exécution, il renverra Actif : actif (en cours d’exécution).
sudo service ssh status
2. Sur le serveur physique, ouvrez un terminal et installez OpenSSH Server. Vous devrez être assis devant la machine pour émettre ces commandes.
sudo apt update
sudo apt install openssh-server
3. Démarrez le service SSH.
sudo service ssh start
4. Dans votre répertoire personnel, créez un répertoire caché appelé .ssh.
mkdir .ssh
5. Fermez la connexion en appuyant sur CTRL+D ou en tapant exit et en appuyant sur Entrée.
Utilisation de PuTTY pour se connecter à un serveur distant à l’aide de clés SSH
PuTTY est une application pour créer et gérer des connexions SSH et série vers des appareils. PuTTY est livré avec sa propre application de génération de clé et dans cette partie du guide, nous allons créer un public pour notre serveur distant et notre clé privée sur notre appareil de confiance.
1. Téléchargez et installez PuTTY. Windows a sa propre invite de commande, qui peut être utilisée avec SSH, mais PuTTY est de loin le moyen le plus accessible pour ouvrir une connexion SSH.
2. Recherchez puttygen et ouvrez l’application.
3. Cliquez sur RSA et définissez les bits sur 4096. Cliquez sur Générer pour créer une clé.
4. Déplacez la souris autour de la zone vide de la boîte de dialogue pour générer une graine aléatoire pour la clé.
5. Créez une phrase secrète pour la clé. Ceci est conseillé pour les clés SSH qui seront utilisées dans les sessions interactives.
6. Enregistrez la clé publique sous id_rsa_putty.pub dans un dossier appelé .ssh.
7. Enregistrez la clé privée sous id_rsa_putty.ppk. Le fichier ppk est le propre format de clé privée de Putty.
8. Mettez en surbrillance la clé publique et copiez le texte.
Copie de la clé publique sur le serveur distant
1. Lancez PuTTY.
2. Entrez l’adresse IP ou le nom d’hôte de votre serveur distant et cliquez sur Ouvrir.
3. Lorsque vous y êtes invité, saisissez votre nom d’utilisateur et votre mot de passe pour le serveur distant. Notez que le mot de passe n’est pas affiché. Il s’agit d’une fonction de sécurité pour empêcher le « surf des épaules ».
4. À l’aide de l’éditeur de texte nano, créez un nouveau fichier nommé authorized_keys dans le répertoire .ssh.
5. Faites un clic droit et collez la clé publique (créée dans PuTTYGen) dans le dossier vierge. sauvegarder en appuyant sur CTRL+X, puis Y et Entrée.
6. Déconnectez-vous de la session SSH en appuyant sur CTRL + D.
7. Rouvrir le mastic et allez dans SSH >> Auth.
8. Sélectionnez la clé privée Putty (ppk) que nous venons de créer.
9. Revenez à Session, entrez le nom d’hôte / l’adresse IP de votre serveur et cliquez sur Ouvrir pour démarrer une connexion.
10. Saisissez votre nom d’utilisateur, puis la phrase secrète de votre clé. Appuyez sur Entrée pour vous connecter.
Vous contrôlez maintenant le serveur distant, en utilisant un terminal Linux fonctionnant dans le système de fichiers Linux. Pour fermer une connexion, utilisez CTRL + D ou cliquez sur le X pour fermer la fenêtre.
Comment créer une paire de clés SSH via l’invite de commande / le terminal
La création d’une paire de clés SSH à partir de l’invite de commande / du terminal Linux peut être effectuée avec une seule commande et quelques questions à répondre. Nous configurons les clés publiques et privées sur notre machine cliente, en copiant la clé publique sur le serveur distant. Ces étapes s’appliquent à l’invite de commande Windows et au terminal Linux.
1. Ouvrez une invite de commande en appuyant sur la touche Windows et recherchez CMD. Appuyez sur Entrée pour exécuter.
2. Utilisez la commande ssh-keygen pour créer une clé SSH en utilisant le type de clé RSA, avec 4096 bits.
ssh-keygen -t rsa -b 4096
3. Lorsque vous êtes invité à nommer votre clé, appuyez sur Entrée. Cela enregistrera la clé privée et publique dans le répertoire .ssh pour votre compte nommé. Par exemple, nos clés ont été enregistrées dans C:Userslespo.ssh. Utilisateurs Linux, les clés seront enregistrées en .ssh dans votre répertoire personnel homeuser.ssh
4. Lorsque vous y êtes invité, donnez à votre clé une phrase de passe comme niveau de sécurité supplémentaire. Une phrase secrète est une étape de sécurité supplémentaire pour les clés SSH qui seront utilisées par de vrais utilisateurs (de manière interactive). Une phrase de passe n’est pas nécessaire si la connexion SSH est utilisée dans un script automatisé.
5. Changez de répertoire pour l’emplacement de vos clés SSH. Ici, nous supposons que vous êtes dans votre compte nommé. Par exemple C:Userslespo est le nôtre. Sous Linux, ce serait /home/les/.ssh
cd .ssh
6. Listez les fichiers dans le répertoire. Il devrait y avoir id_rsa et id_rsa.pub.
Windows Command
dir
Linux Command
ls
Copie de la clé publique sur le serveur distant
La clé publique est stockée sur notre serveur distant et interagit avec la clé privée sur notre machine de confiance pour former une connexion sécurisée. Afin d’obtenir la clé publique de notre serveur, nous devons copier (scp) le fichier en toute sécurité.
1. Dans une invite de commande, utilisez la commande scp pour copier en toute sécurité id_rsa.pub dans votre répertoire personnel sur le serveur distant. Vous aurez besoin de connaître l’adresse IP ou le nom d’hôte de l’ordinateur distant. Dans notre exemple, nous avons copié le fichier dans [email protected]:/home/testuser/
scp id_rsa.pub user@hostname:/home/username
2. SSH dans l’ordinateur distant.
ssh user@hostname
3. Vérifiez que le fichier id_rsa.pub est présent dans votre répertoire personnel.
ls *.pub
4. Copiez le contenu du fichier dans un nouveau fichier dans le répertoire .ssh. À l’aide de la commande cat, nous envoyons le contenu au fichier, authorized_keys à l’aide d’un tube qui ajoute les données au fichier (>>).
cat id_rsa.pub >> .ssh/authorized_keys
5. Fermez la connexion SSH en appuyant sur CTRL + D ou en tapant exit.
6. Reconnectez-vous via SSH à l’ordinateur distant. Si vous avez créé une phrase de passe pour votre clé SSH, vous serez invité à la saisir.
Utiliser des clés SSH sur une autre machine
Réutiliser votre clé SSH privée est possible, mais ce n’est pas la meilleure pratique de sécurité. Perdre un ordinateur portable avec la clé signifie que vous devrez régénérer vos clés. La meilleure pratique serait de générer une nouvelle paire de clés pour chaque appareil qui souhaite se connecter. Ajout de la clé publique au fichier authrozied_keys sur le serveur. Cela dit, il est relativement facile de réutiliser une clé privée sur plusieurs appareils.
Réutiliser une clé privée PuTTY
PuTTY stocke la clé privée en tant que clé PPK et ce fichier est tout ce dont nous avons besoin pour qu’une machine se connecte à un serveur distant à l’aide de notre clé publique.
1. Accédez à votre dossier .ssh et copiez le fichier PPK sur une clé USB. Conservez cette clé USB en sécurité car elle peut être utilisée par n’importe qui pour accéder à votre serveur.
2. Insérez la clé USB dans un autre ordinateur.
3. Créez un dossier .ssh dans votre répertoire personnel. Pour Windows, ce serait C:Usersusername.ssh et Linux /home/user/.ssh.
4. Copiez le fichier PPK dans le répertoire .ssh.
5. Suivez l’étape 7 de Copie de la clé publique sur le serveur distant pour vous connecter.
Réutiliser une invite de commande/une clé privée de terminal
1. Accédez à votre dossier .ssh et copiez le fichier de clé privée sur une clé USB. Conservez cette clé USB en sécurité car elle peut être utilisée par n’importe qui pour accéder à votre serveur.
2. Insérez la clé USB dans un autre ordinateur.
3. Créez un dossier .ssh dans votre répertoire personnel. Pour Windows, ce serait C:Usersusername.ssh et Linux /home/user/.ssh.
4. Copiez le fichier de clé privée dans le répertoire .ssh.
5. Démarrez une session SSH sur l’ordinateur distant. Si vous avez créé une phrase de passe pour votre clé SSH, vous serez invité à la saisir.
ssh user@hostname