Comment configurer SSH sans mot de passe sous Linux

En raison de sa fiabilité et de sa sécurité, le Secure Socket Shell (SSH) est le moyen le plus courant d’interagir avec un serveur distant. Cependant, l’utilisation de ce protocole peut s’avérer fastidieuse car il utilise par défaut un nom d’utilisateur et un mot de passe.

Pour simplifier le processus de connexion, vous pouvez mettre en place un SSH sans mot de passe. Au lieu du traditionnel nom d’utilisateur et mot de passe, ce système utilise une paire de clés chiffrées pour authentifier la connexion à distance.

Dans cet article, nous allons vous expliquer comment configurer SSH sans mot de passe sous Linux en quatre étapes simples afin que vous puissiez vous connecter à votre serveur sans problème.

Conditions préalables

Avant de configurer SSH sans mot de passe, assurez-vous que vous pouvez accéder à votre VPS Linux à l’aide d’un nom d’utilisateur et d’un mot de passe. Ceci est important car nous pourrions avoir besoin d’ajouter la clé d’authentification manuellement.

Vous devez également disposer d’un accès superutilisateur ou root au VPS et à votre machine locale. Comme nous allons éditer la configuration au niveau du système, cela évitera les erreurs de permission.

Si vous ne pouvez pas accéder à votre VPS via SSH en tant que superutilisateur, vérifiez si votre fournisseur d’hébergement peut vous aider. Pour les utilisateurs Hostinger, vous disposez par défaut d’un accès root complet, ce qui signifie que vous pouvez modifier librement tous les aspects de votre serveur.

Les utilisateurs Hostinger peuvent également se connecter à leur serveur via le terminal de navigateur. Il s’agit d’une alternative au SSH sans mot de passe, puisque vous pouvez interagir avec votre VPS sans entrer d’identifiants, tant que vous pouvez accéder à votre compte d’hébergement.

Vérifier l’existence de clés SSH

Si vous travaillez avec d’autres systèmes que le vôtre, comme l’ordinateur d’un client, vérifiez si le SSH sans mot de passe est déjà configuré.

Important ! La configuration de SSH sans mot de passe sur un système local qui en dispose déjà remplacera les clés d’authentification existantes. Cela peut entraîner des problèmes de connectivité qui vous empêchent d’accéder au serveur précédemment associé.

Pour vérifier si le protocole SSH sans mot de passe est activé sur votre système local, ouvrez Terminal et exécutez la commande suivante :

ls -al ~/.ssh/id_*.pub

Si le fichier .pub, qui contient les clés d’autorisation, apparaît dans la liste, cela signifie que le protocole SSH sans mot de passe est déjà activé.

Dans le cas contraire, la sortie suivante devrait s’afficher :

ls: cannot access /users/appsadm/.ssh/id_*.pub: No such file or directory

Configuration de SSH sans mot de passe

Après vous être assuré que vous remplissez toutes les conditions préalables, suivez les étapes suivantes pour configurer SSH sans mot de passe.

1. Générer des clés SSH

Pour commencer, générons des clés SSH – des informations d’identification qui remplaceront le nom d’utilisateur et le mot de passe par défaut en tant que jeton d’authentification. Voici comment procéder :

  1. Ouvrez le terminal de votre ordinateur local.
  2. Saisissez la commande suivante pour générer les clés SSH. Vous pouvez utiliser le chiffrement rsa ou ed25519 :
ssh-keygen -t ed25519
  1. Appuyez sur Entrée pour enregistrer les clés SSH dans l’emplacement par défaut, à savoir ~/.ssh/. Vous pouvez également spécifier un autre emplacement et appuyer sur Entrée pour confirmer.
  2. Si vous le souhaitez, ajoutez une phrase de passe pour chiffrer vos clés SSH. Appuyez sur Entrée si vous souhaitez ignorer cette étape.

Votre application de ligne de commande doit afficher l’image randomart et le jeton des clés SSH. Les clés SSH sont automatiquement enregistrées dans le chemin d’accès que vous avez spécifié lors du processus de génération dans deux fichiers – id_ed25519 et id_25519.pub.

2. Copier la clé publique sur le serveur

Maintenant que vous avez obtenu les clés SSH, copiez la clé publique sur votre serveur.

Méthode 1 : Utiliser la commande ssh-copy-id

La première méthode est la plus simple et la plus rapide. Pour ce faire, il vous suffit d’entrer la commande suivante dans le terminal de votre machine locale :

ssh-copy-id nom_utilisateur_distant@adresse_IP_distante

Remplacez nom_utilisateur_distant par le compte utilisateur sur lequel vous souhaitez activer SSH sans mot de passe. Remplacez également adresse_IP_distante par l’adresse IP réelle de votre VPS.

Ensuite, entrez le mot de passe de l’utilisateur. Une fois la configuration terminée, votre serveur fermera la connexion à distance.

Notez que le SSH sans mot de passe ne sera actif que pour l’utilisateur que vous spécifiez dans la commande ssh-copy-id. Par exemple, vous exécutez la commande suivante

ssh-copy-id admin123@123.123.123.123

Cela signifie que le SSH sans mot de passe ne fonctionnera que pour admin123, mais pas pour les autres utilisateurs. De même, vous ne pourrez pas vous connecter à partir d’une autre machine cliente puisqu’elle ne possède pas la paire de clés.

Important ! Pour activer SSH sans mot de passe pour plusieurs appareils ou utilisateurs, vous devez générer de nouvelles clés pour chacun d’entre eux.

Méthode 2 : Copier la clé privée à l’aide de SSH

Vous pouvez copier votre clé privée via SSH à l’aide d’une série de commandes. N’oubliez pas de remplacer le nom_utilisateur_distant et adresse_IP_distante par leurs valeurs réelles :

cat ~/.ssh/id_ed25519.pub | ssh nom_utilisateur_distant@adresse_IP_distante "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys" 

Votre interface de ligne de commande doit demander le mot de passe de l’utilisateur pour initier la connexion.

Cette commande récupère le contenu de votre fichier id_ed25519.pub, se connecte au serveur via SSH en utilisant l’utilisateur spécifié, et ajoute la clé publique au dossier authorized_keys du système distant.

Méthode 3 : Copier manuellement la clé privée

Si vous ne pouvez pas copier la clé privée à l’aide de la commande à distance, ajoutez l’identifiant manuellement. Pour ce faire, procédez comme suit

  1. Ouvrez l’application de ligne de commande de votre système local et exécutez la commande suivante. Remplacez ~/.ssh/id_25519.pub par le chemin d’accès correct si vous utilisez un emplacement autre que celui par défaut :
cat ~/.ssh/id_25519.pub 
  1. Votre shell de ligne de commande affichera la clé publique. Copiez-la et enregistrez-la dans un endroit sûr.
  2. Connectez-vous à votre machine distante via SSH à l’aide de la commande ci-dessous. Vous pouvez également vous connecter via SSH en utilisant PuTTY :
ssh nom_utilisateur_distant@adresse_IP_distante
  1. Une fois connecté, créez le répertoire .ssh à l’aide de cette commande :
mkdir -p ~/.ssh
  1. Ouvrez le fichier .ssl/authorized_keys de votre système distant à l’aide de cette commande :
nano ~/.ssh/authorized_keys
  1. Collez la clé SSH que vous avez copiée précédemment. 
  2. Appuyez sur Ctrl + X, Y et Entrée pour enregistrer les modifications.
  3. Définissez les autorisations correctes pour vous assurer que votre système peut lire la clé publique SSH tout en empêchant les utilisateurs non autorisés de l’ouvrir.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

3. Vérifier l’authentification par clé

Vérifions si la connexion SSH sans mot de passe fonctionne correctement. Pour ce faire, il suffit d’exécuter la commande suivante dans l’application de ligne de commande de votre système local :

ssh nom_utilisateur@adresse_ip

Vous devriez vous connecter automatiquement au serveur en tant qu’utilisateur spécifié. Si votre ligne de commande vous demande le mot de passe, vérifiez que vous utilisez le bon compte. Si le problème persiste, essayez de copier à nouveau les clés SSH.

Si vous activez une phrase de passe au cours du processus de génération des clés, vous devez la saisir à chaque fois que vous vous connectez. Vous pouvez éviter ce processus en mettant en cache les informations d’identification à l’aide d’un agent SSH. Voici comment procéder :

  1. Ouvrez l’application de ligne de commande de votre système local.
  2. Exécutez la commande suivante pour lancer l’agent SSH :
eval `ssh-agent -s`
  1. Mettez en cache votre clé SSH à l’aide de cette commande. N’oubliez pas d’utiliser le chemin correct si vous modifiez l’emplacement par défaut :
ssh-add ~/.ssh/id_ed25519 

Maintenant, lorsque vous accédez à votre serveur via SSH, votre application en ligne de commande ne devrait plus demander de phrase de passe.

4. Désactiver la connexion SSH par mot de passe

Bien qu’optionnel, il est conseillé de désactiver la connexion SSH par mot de passe après avoir configuré les clés d’authentification. Cela minimise les points d’entrée potentiels pour les cybercriminels, améliorant ainsi la sécurité de votre VPS.

Notez qu’après avoir désactivé la connexion par mot de passe, vous ne pouvez accéder à votre VPS qu’en utilisant l’ordinateur sur lequel vous avez configuré les clés SSH. Pour éviter que votre compte ne soit bloqué, tenez compte des points suivants :

  • Assurez-vous que votre SSH sans mot de passe fonctionne correctement.
  • Stockez votre fichier de clé privée, qui réside par défaut sur votre machine locale, à plusieurs endroits. Nous vous recommandons vivement d’utiliser une plateforme chiffrée basée sur le cloud, telle que 1Password ou NordPass
  • Configurez des clés SSH sur tous les systèmes que vous utiliserez pour accéder à votre VPS. Assurez-vous toutefois que ces machines sont sécurisées.

Suivez les étapes suivantes pour désactiver la connexion SSH par mot de passe sur votre VPS :

  1. Connectez-vous à votre serveur en tant que root ou superutilisateur. Si vous l’avez déjà fait, ignorez cette étape. 
  2. Ouvrez le fichier de configuration SSH à l’aide d’un éditeur de texte tel que Nano :
sudo nano /etc/ssh/sshd_config
  1. Recherchez ces paramètres et modifiez leur valeur en suivant l’exemple ci-dessous. S’ils commencent par un signe dièse (#), supprimez-le pour vous assurer que les paramètres sont actifs. 
PasswordAuthentication no

ChallengeResponseAuthentication no

PubkeyAuthentication yes

PermitRootLogin prohibit-password
  1. Appuyez sur Ctrl + X, Y et Entrée pour enregistrer les modifications. 
  2. Redémarrez le service SSH à l’aide de cette commande.
sudo systemctl restart sshd

Désormais, vous ne pouvez vous connecter à votre serveur qu’à l’aide des clés SSH.

Conclusion

La configuration de SSH sans mot de passe vous permet de vous connecter à votre serveur distant de manière plus sûre et plus facile. Dans ce tutoriel, nous avons expliqué comment le configurer sur un serveur Linux. Voici les étapes à suivre :

  1. Ouvrez le terminal de votre système local ou PuTTY et générez la paire de clés SSH.
  2. Copiez la clé publique sur votre serveur distant à l’aide de commandes ou manuellement via SSH. 
  3. Vérifiez la connexion basée sur la clé en vous connectant à votre serveur.
  4. Désactivez la connexion par mot de passe de votre serveur en modifiant le fichier SSHD. 

Répétez les étapes si vous souhaitez configurer la connexion sans mot de passe pour un autre utilisateur ou une autre machine. De plus, stockez votre clé SSH privée sur une plateforme sécurisée et chiffrée telle que 1Password afin d’éviter de vous retrouver bloqué hors de votre serveur.

SSH sans mot de passe – FAQ

Quel est le meilleur type de clé pour SSH sans mot de passe ?

Deux types de clés SSH – RSA et ED25519 – ont leurs propres avantages et inconvénients. RSA est compatible avec davantage de systèmes d’exploitation, en particulier les plus anciens. En revanche, la clé ED25519 est plus sûre et plus efficace parce qu’elle est plus courte. 

Puis-je configurer un SSH sans mot de passe pour plusieurs serveurs ?

Oui, vous pouvez configurer SSH sans mot de passe pour plusieurs serveurs. Il suffit de générer les clés d’authentification pour chaque système distant et de leur envoyer la clé publique. Vous pouvez également configurer SSH sans mot de passe pour que plusieurs machines locales accèdent au même serveur.  

Est-il possible de désactiver complètement l’authentification par mot de passe ?

Oui, la désactivation de l’authentification par mot de passe sur votre VPS est généralement sûre car les clés SSH sont plus difficiles à craquer, ce qui les rend plus sécurisées. Cependant, n’oubliez pas de sauvegarder vos clés SSH et de les stocker sur une plateforme comme 1Password pour éviter de vous retrouver bloqué hors de votre serveur.

Author
L'auteur

Ismail

Ismail est un spécialiste du référencement et de la localisation chez Hostinger. Il est passionné par la technologie et le développement web et possède des années d'expérience dans le domaine informatique. Ses passe-temps incluent les jeux vidéo et le football.