Introduction
L’emploi de clés SSH revêt une grande importance en regard de la sécurité sur le Web, car elles permettent de lancer des commandes à distance sur un serveur de façon sûre.
Avant de commencer, nous expliquons brièvement ce qu’est le protocole SSH. Par la suite, nous nous intéressons à la section Fichiers, Connexions SSH de N0C, et expliquons comment créer les accès SSH pour accéder au terminal et effectuer des lignes de commande à distance. Enfin, nous expliquons comment créer une clé SSH avec divers systèmes d’exploitation.
Nous nous limiterons aux renseignements ayant trait à l’utilisation pour usagers de niveau intermédiaire, quoique les lignes de commande à distance intéresseront davantage les usagers d’un niveau plus avancé.
Prérequis
Saisissez dans votre navigateur Web l’adresse suivante : https://mg.n0c.com/fr/.
Qu’est-ce qu’une clé SSH?
Une clé Secure Shell, le plus souvent appelée clé SSH, permet de créer une connexion sécurisée sur un réseau non-sécurisé comme l’Internet.
Une clé SSH est composée de deux parties :
- Une clé publique qui est à la disponibilité de tous (le client et le serveur). Elle est utilisée pour chiffrer une communication. Le serveur utilise la clé publique pour l’authentification.
- Une clé privée qui est gardée secrète, car elle est connue seulement du client et conservée sur sa propre machine. La clé privée est utilisée pour le déchiffrement de messages à l’aide d’une clé publique correspondante.
L’avantage d’utiliser une clé SSH pour la création d’une connexion entre ordinateurs est que seulement la clé publique a besoin d’être échangée via le réseau. Les transmissions chiffrées avec une clé publique peuvent uniquement être décodées avec la clé privée correspondante et un mot de passe. D’office, un pirate ne peut rien faire pour déchiffrer les communications sur le Web puisqu’il n’a pas accès à la clé privée.
Connexion à distance à un hébergement via SSH (mode GUI de N0C)
Pour vous connecter via SSH, vous aurez besoin d’au moins quatre informations : l’adresse du serveur, le nom d’utilisateur, le mot de passe et le port.
Si vous voulez vous connecter à distance en sécurisant vos données au moyen du protocole SSH et que la machine sur laquelle vous travaillez est équipée de OSX ou Linux, cela ne cause aucune difficulté : vous avez tout ce dont vous avez besoin pour démarrer et vous pouvez utiliser SSH depuis le terminal sans logiciel spécial.
Toutefois, si vous travaillez sur votre machine dans d’autres environnements, comme Windows, certaines manipulations logicielles s’avèrent nécessaires. Dans le cas de Windows, il faut installer un programme tierce partie : comme le plus connu s’appelle PuTTY et qu’il est recommandé, nous fournirons les détails décrivant comment le télécharger.
Se connecter en SSH par mot de passe à son hébergement sous l’environnement Windows de Microsoft
Avant de télécharger et d’installer le logiciel PuTTY, il vous faut récupérer votre nom d’utilisateur ainsi que votre mot de passe.
- Connectez-vous sur le site de votre hébergeur.
- Accédez au mot de passe de votre domaine.
- Copiez-le et conservez-le dans le presse-papier.
- Télécharger PuTTY depuis son site officiel : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html. Cliquez sur le programme d’installation (ici, putty-64bit-0.74-installer.msi).
- Cela fait, lancez PuTTY. Assurez-vous que le bouton radio SSH est bien automatiquement activé sous Connection type: dans la fenêtre PuTTY Configuration.
- Entrez soit l’adresse IP de votre serveur ou le nom de l’hôte (par exemple, node2-ca.n0c.com).
- Indiquer le bon port. Ce réglage varie en fonction du type d’hébergement dont vous disposez : à moins que vous en soyez autrement informé, utilisez 5022 pour les champs Port.
- Afin de sauvegarder l’information saisie en mémoire – ce qui permet de ne pas avoir à le refaire à chaque connexion – donnez un nom à la session dans le champ nommé Saved Sessions et cliquer sur le bouton Save.
- Lancer la session SSH en cliquant sur le bouton Open. La première fois, PuTTY devrait vous demander une confirmation.
- Lorsque le serveur vous demande login as:, identifiez-vous en saisissant le nom d’utilisateur et appuyez sur la touche Entrée de votre clavier.
- Saisissez le mot de passe de votre compte (comme vous l’aviez copié à l’étape 3, vous pouvez faire un clic droit de votre souris; il est normal que les caractères ne s’affichent pas quand vous tapez le mot de passe).
- Le système vous accueillera avec un message du serveur d’hébergement, ce qui prouve que vous êtes connecté avec succès en SSH.
- Pour vous déconnecter, tapez logout.
Se connecter en SSH par mot de passe à son Hébergement depuis l’environnement MacOSX de Apple Computers
Le programme étant natif, il suffit de l’activer.
- Lancez le terminal en ouvrant Applications > Utilitaires > Terminal.
- Tapez la commande suivante en remplaçant utilisateur par le nom d’utilisateur de l’hébergement auquel vous désirez vous connecter, ipduserveur par l’adresse IP du serveur à contacter et port par le port approprié.
ssh utilisateur@ipduserveur -p numéroduport
- Appuyez sur la touche Entrée du clavier afin de lancer la connexion SSH; saisir le mot de passe (lorsque vous le tapez, aucun caractère ne s’affiche) et appuyez sur la touche Entrée.
- Si c’est votre première connexion, le terminal vous demandera finalement si vous souhaitez faire confiance à cet hôte distant et stocker la clé rsa2 en mémoire; vous pourrez alors taper « yes » sur votre clavier.
Connexion à distance à un hébergement avec une clé SSH privée
Jusqu’à maintenant, nous avons expliqué comment se connecter à distance à un hébergement via SSH en utilisant le GUI. Maintenant, nous allons traiter de l’approche à adopter lorsqu’on désire le faire en générant une clé SSH (paire publique et privée).
Peu importe le système d’exploitation, les étapes sont toujours les mêmes :
- Générez les clés.
- Envoyez votre clé publique sur le serveur distant.
- Testez la connexion.
Nous allons apprendre la marche à suivre pour les systèmes d’exploitation MS-Windows, Mac OS, Linux/Unix (Ubuntu, Fedora, CentOS, Debian, Deepin, etc.), Solaris, Free BSD et Chrome OS.
Connexion avec clé SSH sous un environnement Windows
Étape 1 – Créez la nouvelle clé publique et la nouvelle clé privée
Il existe plusieurs manières de procéder. Nous n’en verrons qu’une seule, qui fait appel à l’outil PuTTYgen.
Si PuTTYgen n’est pas déjà installé :
- Installez PuTTYgen en tapant https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html, puis en sélectionnant puttygen.exe.
- Dans l’interface PuTTY Key Generator, assurez-vous que le nombre de bits est au moins 2048.
- Cliquez sur le bouton Generate et, comme demandé, promenez votre souris dans la zone vierge (cela contribue à générer la clé privée de manière aléatoire).
- Cliquez sur le bouton de sauvegarde de la clé privée (Save private key).
- Sauvegardez la clé privée sous le nom id_rsa.ppk.
- Cliquez sur Enregistrer.
- La boîte de dialogue sous Key / Public key for pasting into OpenSSH authorized_keys file contient la clé publique générée.
Étape 2 – Copiez la clé publique sur le serveur distant
- Lancez PuTTY et connectez-vous au serveur avec vos informations d’identification de l’utilisateur existantes, comme expliqué précédemment dans « Se connecter en SSH par mot de passe à son hébergement sous l’environnement Windows de Microsoft ».
- Dans l’interface PuTTY Key Generator, surlignez l’ensemble de la clé publique (commençant par ssh-rsa) et copiez le texte (tapez CTRL C au clavier).
- Dans N0C, choisissez Fichiers et Clés SSH.
- Cliquez sur le bouton Créer.
- Dans la boîte de dialogue Créer clé SSH :
- saisissez le nom de la clé dans le champ NOM;
- collez la clé publique que vous avez copiée dans le champ CLÉ PUBLIQUE;
- cliquez sur le bouton CRÉER.
- Votre clé est alors affichée dans la fenêtre Clés SSH.
- Déconnectez-vous du serveur (tapez logout).
Étape 3 – Testez l’authentification avec clé SSH
Fermez l’outil PuTTYgen et ouvrez PuTTY de nouveau.
- Dans la fenêtre PuTTY Configuration, sous Session, saisissez Host Name ou IP adress.
- Faites Connection >> SSH >> Auth.
- Cliquez sur le bouton Browse sous Authentication parameters / Private key file for authentication.
- Localisez la clé privée id_rsa.ppk et cliquez sur Ouvrir.
- Finalement, dans PuTTY Configuration, cliquez sur le bouton Open de nouveau pour vous connecter au serveur à distance par authentification avec les deux clés.
- Vous devriez voir apparaître l’écran de PuTTY avec connexion à votre domaine.
- Entrez votre nom d’utilisateur.
- Confirmez que le message d’authentification avec la clé publique est affiché.
Connexion avec clé SSH sous un environnement Mac OS X
Nous allons expliquer ici comment enregistrer une clé SSH sur un serveur distant afin d’avoir ensuite à taper uniquement SSH utilisateur@ipduserveur -p 5022 sans mot de passe depuis Mac OS X.
Étape 1 – Créez la nouvelle clé publique et la nouvelle clé privée
- Saisissez dans le terminal :
ssh-keygen -t rsa -b 2048
- Le terminal demande :
Generating public/private rsa key pair. Enter file in which to save the key (/Users/johann/.ssh/id_rsa):
- Valider afin de garder le répertoire par défaut, ce qui est plus simple.
- Ne rien saisir lorsque le message suivant est affiché :
Enter passphrase (empty for no passphrase):
- Valider deux fois.
- La clé apparaît.
Étape 2 – Copiez la clé publique sur le serveur distant
- Envoyez votre clé sur le serveur distant (dans le dossier .ssh du dossier de l’utilisateur distant). Voici un exemple à adapter à votre besoin :
cat ~/.ssh/id_rsa.pub | ssh utilisateur@ipduserveur -p 5022 "cat >> ~/.ssh/authorized_keys"
- Le mot de passe SSH est alors demandé pour la dernière fois. Complétez et validez.
Étape 3 – Testez l’authentification avec clé SSH
- Entrez le texte suivant :
ssh utilisateur@ipduserveur -p 5022
- Si aucun mot de passe n’est demandé, tout est fonctionnel.
Connexion avec clé SSH sous des environnements Linux/Unix (Ubuntu, Fedora, CentOS, Debian, Deepin, etc.)
Avant de générer une clé SSH, assurez-vous que votre machine est compatible avec la connexion SSH.
Étape 1 – Créez la nouvelle clé publique et la nouvelle clé privée
Procédez exactement de la même manière que pour MacOSx.
Étape 2 – Copiez la clé publique sur le serveur distant
L’étape suivante consiste à mettre la clé publique sur le fichier authorized_keys du serveur distant.
- Tapez la commande suivante, où ipduserveur -p 5022 représente l’adresse IP de votre serveur distant et où utilisateur représente le nom d’utilisateur du serveur:
ssh-copy-id utilisateur@ipduserveur -p 5022
- Un message d’avertissement semblable à ceci apparaît :
The authenticity of host 'Server's IP address' can't be established. RSA key fingerprint is ... Are you sure you want to continue connecting (yes/no)?
- Tapez yes dans la ligne de commande et appuyez sur la touche Entrée. Le message suivant est alors affiché :
Warning: Permanently added 'SERVER IP' (RSA) to the list of known hosts. utilisateur@ipduserveur's password:
- Ici, vous devez entrer le mot de passe de l’utilisateur du serveur distant (dans la plupart des cas, le nom d’utilisateur est root).
- Après avoir entré le mot de passe, un autre message d’accueil est affiché.
- Essayez de vous connecter à la machine avec « ssh utilisateur@ipduserveur -p 5022 », et assurez-vous dans ~/.ssh/authorized_keys* que vous n’avez pas ajouté de clé en trop.
Étape 3 – Testez l’authentification avec clé SSH
- À cette étape, il faut vous connecter sur votre serveur avec la commande :
ssh utilisateur@ipduserveur -p 5022
- La nouvelle clé publique ayant été ajoutée à votre serveur distant, chaque fois que vous vous y connecterez, vous ne serez pas invité à entrer un mot de passe (à moins que vous ayez configuré une phrase secrète pour votre clé RSA).
Connexion avec clé SSH sous un environnement Solaris
Référez-vous à l’article suivant : https://docs.oracle.com/cd/E24843_01/html/E23285/sshuser-15.html.
Connexion avec clé SSH sous un environnement Free BSD
Référez-vous à l’article suivant : https://docs.freebsd.org/fr/books/handbook/security/#openssh.
Connexion avec clé SSH sous un environnement ChromeOS
Référez-vous à l’article suivant : https://www.phhsnews.com/how-to-use-ssh-tunnelling-on-chrome-os153.