GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer l'authentification SSH sans mot de passe sous Linux

Les mots de passe deviennent vulnérables avec l'environnement de cybersécurité en constante évolution. Plus que jamais, les systèmes deviennent sujets aux attaques par force brute. Les utilisateurs permettent également aux pirates d'infiltrer facilement leurs systèmes en sécurisant les systèmes avec des mots de passe faibles et souvent devinables. L'authentification à 2 facteurs est désormais monnaie courante et offre une couche de protection supplémentaire à l'aide de codes OTP pour garantir que c'est bien l'utilisateur qui se connecte au système.

Une autre façon de sécuriser votre serveur consiste à configurer une authentification SSH sans mot de passe sur votre serveur. Cela utilise l'authentification SSH à clé publique où une paire de clés SSH est générée sur le système local. La paire de clés est composée d'une clé SSH privée et d'une clé SSH publique. La clé privée reste sur le système local tandis que la clé publique est téléchargée sur le système distant. Lors de l'authentification, un échange de clé a lieu entre la clé publique enregistrée sur le système distant et la clé privée sur le système local. Les connexions ultérieures sont ainsi sécurisées et aucun mot de passe ne vous sera demandé.

Dans ce guide, nous vous expliquons comment configurer l'authentification SSH par mot de passe en 3 étapes simples.

Laboratoire de configuration SSH sans mot de passe

À des fins de démonstration, nous utiliserons la configuration de laboratoire suivante :

Local Linux system - 192.168.2.104
Remote Linux system - 192.168.2.108

Il serait prudent de vous assurer également que vous pouvez accéder au système distant à partir de votre système local en utilisant l'authentification par mot de passe SSH.

Commençons !

Étape 1. Générer une paire de clés SSH

Dès le départ, nous allons générer une paire de clés SSH qui sera stockée dans le répertoire personnel. Alors, invoquez le ssh-keygen commande comme indiqué. Ici, nous créons une paire de clés de 4096 bits.

$ ssh-keygen -b 4096

Acceptez les valeurs par défaut en appuyant simplement sur ENTER. Vous pouvez trouver la paire de clés SSH dans le fichier ~/.ssh répertoire qui est un répertoire caché dans votre dossier personnel.

Juste pour être sûr, utilisez la commande ls pour vérifier la présence des clés SSH.

$ ls .ssh

La clé privée est désignée par id_rsa tandis que id_rsa.pub est la clé publique. Ce sont des clés cryptographiques qui sont cryptées. Nous copierons plus tard la clé publique sur le système distant.

Étape 2. Copiez la paire de clés SSH sur le système distant

Ensuite, vous devez copier et enregistrer la clé publique sur le système Linux distant. Pourquoi fait-on ça? Dans l'authentification par clé publique, une poignée de main d'authentification a lieu entre la clé publique sur le système distant et la clé privée résidant sur le système local. Cela garantit que tout le trafic ultérieur entre le système hôte local et le système distant est chiffré.

Pour copier la clé publique SSH, exécutez le ssh-copy-id commande comme suit.

$ ssh-copy-id [email protected]

Dans notre cas, ce sera :

$ ssh-copy-id [email protected]

Pour continuer la connexion, tapez « Yes » et appuyez sur ENTER. Ensuite, fournissez le mot de passe au système distant pour vous connecter et copiez la clé publique SSH.

La clé SSH publique est ajoutée à un fichier unique appelé authorized_keys dans le répertoire personnel du compte utilisateur auquel vous vous connectez. Le chemin complet vers ce fichier est ~/.ssh/authorized_keys

Après avoir réussi à copier la clé SSH, vous pouvez maintenant vous connecter au système distant en utilisant l'authentification par clé publique comme suit.

$ ssh [email protected]

À partir de l'extrait ci-dessous, vous pouvez voir que nous nous sommes connectés au système distant sans même être invité à entrer un mot de passe. Génial !

Comme mentionné précédemment, la clé publique est enregistrée dans le fichier ~/.ssh/authorized_keys chemin.

Étape 3. Désactiver l'authentification par mot de passe (facultatif)

Si vous souhaitez renforcer la sécurité de votre système distant, vous pouvez envisager de désactiver l'authentification par mot de passe. Ce faisant, vous vous assurez que vous êtes le seul à pouvoir accéder au système à l'aide de la clé privée installée sur votre système local. La clé doit toujours être top secrète. Ne le partagez jamais avec qui que ce soit, de peur que votre système ne soit compromis.

Sur l'hôte distant, ouvrez l'accès à /etc/sshd_config fichier a montré.

$ sudo vim /etc/sshd_config

Localisez le PasswordAuthentication paramètre et réglez-le sur non comme indiqué.

Ensuite, assurez-vous que l'authentification par clé publique est activée comme indiqué.

Pour que les modifications persistent, effectuez un redémarrage du service SSH comme suit.

$ sudo systemctl restart ssh

Pour démontrer que l'authentification par mot de passe est désactivée, nous allons essayer d'accéder au serveur à l'aide du client Putty SSH. Indiquez l'adresse du système distant et appuyez sur "Ouvrir"

Fournissez le nom d'utilisateur distant et appuyez sur ENTRÉE. Cette fois-ci, vous obtenez une authentification puisque nous avons désactivé l'authentification par mot de passe.

Conclusion

L'authentification par clé publique est un moyen inviolable de connecter et de renforcer votre serveur. Il élimine les vecteurs d'attaque tels que les attaques par mot de passe par force brute qui sont inquiétantes lorsque votre système dispose d'une authentification par mot de passe.


Ubuntu
  1. Comment définir ou modifier le nom d'hôte du système sous Linux

  2. Comment configurer l'authentification basée sur une clé SSH sous Linux

  3. Comment configurer des clés SSH

  4. Comment configurer les clés SSH pour une connexion ssh "sans mot de passe" sous Linux

  5. Comment fonctionne SSH sans mot de passe sous Linux / UNIX

Comment définir ou modifier le nom d'hôte sous Linux

Comment créer une phrase de passe de clé SSH sous Linux

Comment configurer la clé publique et privée SSH sous Linux

Comment configurer une clé SSH sur un serveur Plesk

Comment configurer des clés SSH sur Debian 11 Linux

Comment générer et utiliser la clé SSH dans le système Linux ?