Dans le cadre du processus de sécurisation de votre VPS (voir l'article « Comment sécuriser un VPS sous Ubuntu Linux »), l'accès SSH par nom d'utilisateur et mot de passe peut constituer un point critique pour la sécurité. On a tendance à utiliser des mots de passe faciles à mémoriser (même s'ils contiennent des caractères spéciaux, par exemple Ci@oM0nd0) : cela peut vous exposer à des tentatives d'accès de la part d'utilisateurs malveillants — en utilisant la technique de la force brute, il est en effet possible de trouver votre mot de passe.
Cette technique d'attaque consiste essentiellement à tenter de se connecter au serveur à l'aide d'une base de données de mots de passe connus, jusqu'à trouver le bon. Si vous avez suivi le guide indiqué au début de cet article, vous avez déjà configuré un utilisateur sans privilèges pouvant utiliser sudo et installé Fail2ban pour tenir à distance les tentatives d'accès indésirables. Avec les étapes suivantes, nous allons renforcer encore la sécurité du VPS.
Prérequis
- Un VPS avec un système d'exploitation Linux
- Un utilisateur doté de privilèges adéquats, c'est-à-dire sudo (dans cet exemple, il s'appelle utente_vps)
- Votre ordinateur doit fonctionner sous Microsoft Windows
Dans ce guide, nous verrons comment créer la paire de clés SSH à l'aide de PuTTY.
Étape 1 — Installons PuTTY
- Depuis la page officielle du développeur de PuTTY, téléchargeons le programme d'installation pour Windows
- Une fois le paquet téléchargé, double-cliquons dessus pour lancer l'installation; par défaut, PuTTY sera installé dans le répertoire C:\Program Files\PuTTY\
- Une fois le processus d'installation terminé, cliquez sur Finish pour fermer l'assistant
Étape 2 — Création des clés avec PuTTYgen
- Pour lancer PuTTYgen, utilisez la méthode de votre choix; dans cet exemple, nous utiliserons la barre de recherche de Windows : saisissons donc PuTTYgen
- Faisons un clic droit sur PuTTYgen et sélectionnons « Exécuter en tant qu'administrateur »
- Dans la fenêtre de PuTTY Key Generator, cliquez sur le bouton « Generate » et déplacez le curseur de la souris à l'intérieur de la fenêtre, jusqu'à ce que la barre verte arrive au bout. Le mouvement de la souris sert à générer des nombres aléatoires que PuTTYgen utilisera pour créer le certificat.
- Enregistrez les clés publique et privée (boutons « Save public key » et « Save private key ») à l'emplacement de votre choix, en prenant soin de préciser que la clé privée sera sans passphrase (pour l'instant). Vous aurez alors obtenu vos certificats, par exemple : mypub_key.pub et mypriv_key.ppk. Veillez à ne pas modifier les extensions des fichiers : le certificat public aura l'extension .pub, le certificat privé l'extension .ppk. Laissez PuTTYgen ouvert pour l'instant.
Étape 3 — Copions la clé publique sur le VPS
Maintenant que nous avons notre paire de clés, le moment est venu de copier la clé publique sur votre VPS. Lancez putty.exe (ou, depuis l'invite de commandes, vous pouvez utiliser directement ssh) et connectez-vous à votre VPS via son adresse IPv4, en utilisant l'utilisateur doté des privilèges sudo (dans notre exemple, il s'appelle utente_vps).
Depuis la fenêtre de PuTTY Key Generator, sélectionnez et copiez tout le contenu du champ « Public key for pasting into OpenSSH authorized_keys file: » (assurez-vous d'avoir tout sélectionné : le champ possède une barre de défilement).
Revenez à la session SSH ouverte précédemment et, depuis le répertoire personnel de utente_vps, placez-vous dans le dossier .ssh :
utente_vps@mio_vps:~$ cd .ssh/
Si le dossier n'existe pas, pas d'inquiétude : il suffit de le créer avec :
utente_vps@mio_vps:~$ mkdir .ssh
utente_vps@mio_vps:~$ cd .ssh/
À ce stade, à l'aide de l'éditeur de texte nano, vous pouvez créer ou modifier le fichier authorized_keys dans le dossier .ssh : collez le texte copié précédemment (la clé publique) sans rien introduire d'autre (espaces ou retours à la ligne). Pour enregistrer le fichier, utilisez la combinaison de touches CTRL+X et confirmez éventuellement avec Y s'il vous est demandé si vous souhaitez écraser le fichier.
Étape 4 — Connectons-nous en SSH avec la clé privée
Revenez maintenant au programme PuTTY en prenant soin de saisir à nouveau l'IP de votre VPS et, le cas échéant, le port SSH (pour modifier le port 22 standard, lisez l'article « Comment sécuriser un VPS sous Ubuntu Linux »), puis, dans la colonne de gauche, cherchez l'option « Connection > SSH > Credentials ».
Dans la partie droite, à la rubrique « Private key file for authentication », cliquez sur le bouton « Browse » et indiquez comme fichier votre clé privée (extension .ppk) générée précédemment. Revenez dans « Session »; si vous préférez, vous pouvez saisir un nom dans le champ « Saved Sessions » et cliquer sur le bouton « Save » pour éviter de devoir refaire la procédure à chaque fois. Il ne vous reste plus qu'à cliquer sur « Open ».
Une fois le nom d'utilisateur saisi et la touche ENTRÉE pressée, la console de votre VPS s'affichera sans que vous ayez à saisir de mot de passe, en toute sécurité.
L'étape suivante, pour boucler la boucle, consiste à désactiver complètement l'accès par mot de passe.
Guide publié initialement sur le blog de VPS GREEN, le service VPS sur notre cloud privé green.