Poursuivant le chemin entamé avec les articles précédents sur la sécurisation d'un VPS sous Linux (le guide de base et l'accès par clés SSH), nous allons maintenant modifier le service SSH afin qu'il n'accepte plus les demandes d'accès par saisie de mot de passe. Ainsi, l'accès ne sera possible qu'au moyen de clés SSH, ce qui élève intrinsèquement le niveau de sécurité du VPS.
Si vous veniez à perdre votre clé privée, vous pourrez toujours accéder à votre VPS avec utilisateur et mot de passe via la console web de VPS GREEN, accessible depuis le tableau de bord. Une fois connecté depuis la console, vous pourrez reconfigurer SSH avec une nouvelle clé privée ou rétablir l'accès par nom d'utilisateur et mot de passe.
Prérequis
- Un VPS avec un système d'exploitation Linux
- Un utilisateur doté de privilèges adéquats, c'est-à-dire sudo ou directement root
- Un éditeur de texte; dans notre exemple, nous utiliserons nano
- Avoir configuré SSH pour l'utilisation de clés chiffrées
Modifiez la configuration du service SSH
Avant de commencer les modifications, ouvrez deux sessions SSH : dans l'une, vous exécuterez toutes les opérations indiquées, tandis que l'autre restera ouverte en cas d'urgence (elle peut être utile pour éviter de rester bloqué dehors si les modifications apportées au fichier de configuration s'avéraient erronées). Le fichier de configuration du service SSH se trouve dans /etc/ssh/sshd_config; seul l'utilisateur root peut le modifier.
- Plaçons-nous dans le répertoire où se trouve le fichier sshd_config :
$ cd /etc/ssh - Faisons une copie du fichier sshd_config, afin de pouvoir restaurer rapidement tous les paramètres modifiés :
$ sudo cp sshd_config sshd_config.orig - Nous pouvons maintenant commencer la modification de la configuration :
$ sudo nano sshd_config
À l'intérieur du fichier, tout ce qui commence par # (dièse) est un commentaire et est ignoré au démarrage du service; en même temps, cela nous indique la valeur par défaut de l'option concernée. Par exemple :
#Port 22 <- questa è la porta di default del servizio, ignorata
Port 4422 <- questa è la nuova porta, scelta da noi, utilizzata
Pour empêcher l'accès par mot de passe, nous devons trouver l'option PasswordAuthentication, supprimer le symbole # et remplacer sa valeur par défaut par no — ou, si l'on préfère, écrire une nouvelle ligne en conservant intacte la valeur précédente. Avec l'éditeur nano, nous disposons d'une fonction de recherche bien pratique : il suffit d'appuyer sur les touches CTRL+W pour faire apparaître, en bas de la fenêtre, un champ où saisir le texte à rechercher; en appuyant sur ENTRÉE, la recherche démarre dans le fichier.
Une fois le paramètre PasswordAuthentication trouvé, vous pouvez le modifier :
# PasswordAuthentication yes
PasswordAuthentication no
Enregistrez les modifications en appuyant sur les touches CTRL+X, puis Y et enfin ENTRÉE pour accepter le nom de fichier proposé.
- Il faut maintenant rendre effectives les modifications qui viennent d'être faites : il est donc nécessaire de redémarrer le service SSH en lançant la commande
$ sudo systemctl restart sshd - Étant donné que vous ne recevrez aucune sortie particulière confirmant le redémarrage, vérifiez que le service a bien démarré (si le fichier sshd_config contient des erreurs, le service ne redémarrera pas) :
$ sudo systemctl status sshd
Plus jamais de mot de passe
Si la procédure a été correctement exécutée, vous verrez à la ligne « Active: » que le service est actif et en cours d'exécution, avec un rassurant active (running). Vous pouvez maintenant essayer de vous connecter, par exemple sans la clé privée, pour constater que le service SSH de votre VPS refusera fermement l'accès, sans même demander de nom d'utilisateur ni de mot de passe :
utente_vps@ip_vps: Permission denied (publickey)
Guide publié initialement sur le blog de VPS GREEN, le service VPS sur notre cloud privé green.