clés ssh sur ubuntu

Comment configurer des clés SSH sur Ubuntu 20.04

Partagez sur:

Cet article explique comment configurer des clés SSH sur Ubuntu 20.04.

Nous allons également vous montrer comment configurer une authentification SSH basée sur une clé et vous connecter à des serveurs Linux distants sans saisir de mot de passe.

Secure Shell (SSH) est un protocole réseau permettant de créer une connexion sécurisée entre un client et un serveur.

Avec SSH, vous pouvez exécuter des commandes sur des machines distantes, créer des tunnels, transférer des ports, etc.

SSH prend en charge divers mécanismes d’authentification. Les deux plus courants sont l’authentification par mot de passe et par clé publique.

L’authentification à l’aide d’une clé publique est basée sur l’utilisation de signatures numériques et est plus sûre et plus pratique que l’authentification par mot de passe traditionnelle.

Création de clés SSH sur Ubuntu

Il est probable que vous ayez déjà une paire de clés SSH sur votre machine client Ubuntu. Si vous générez une nouvelle paire de clés, l’ancienne sera écrasée.

Pour vérifier si les fichiers clés existent, exécutez la commande ls suivante:

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

 

Si la commande renvoie quelque chose comme Aucun fichier ou répertoire de ce type, ou aucune correspondance trouvée, cela signifie que l’utilisateur n’a pas de clés SSH, et vous pouvez passer à l’étape suivante et générer une paire de clés SSH. Sinon, si vous avez une paire de clés SSH, vous pouvez soit les existantes, soit sauvegarder les anciennes clés et générer une nouvelle paire.

LIRE AUSSI: Comment sécuriser un serveur nginx avec des certificats Let’s Encrypt sur Ubuntu 16.04 et 18.04?

Pour générer une nouvelle paire de clés SSH 4096 bits avec votre adresse e-mail comme commentaire, exécutez:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Vous serez invité à spécifier le nom du fichier:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

L’emplacement et le nom de fichier par défaut devraient convenir à la plupart des utilisateurs. Appuyez sur Entrée pour accepter et continuer.

Ensuite, vous serez invité à saisir une phrase secrète sécurisée. Une phrase secrète ajoute une couche de sécurité supplémentaire. Si vous définissez une phrase secrète, vous serez invité à la saisir chaque fois que vous utiliserez la clé pour vous connecter à la machine distante.

Si vous ne souhaitez pas définir de phrase secrète, appuyez sur Entrée.

Enter passphrase (empty for no passphrase):

Pour vérifier que votre nouvelle paire de clés SSH est générée, tapez:

ls ~/.ssh/id_*

sortie :

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

C’est ça. Vous avez généré avec succès une paire de clés SSH sur votre machine client Ubuntu.

Configurer des clés SSH sur Ubuntu

Pour configurer des clés SSH sur ubuntu, veuillez maintenant suivre les étapes qui suivent.

Copiez la clé publique sur le serveur distant

Maintenant que vous disposez d’une paire de clés SSH, l’étape suivante consiste à copier la clé publique sur le serveur distant que vous souhaitez gérer.

Le moyen le plus simple et le plus recommandé de copier la clé publique sur le serveur consiste à utiliser l’outil ssh-copy-id. Sur votre type de machine locale:

ssh-copy-id remote_username@server_ip_address

Vous serez invité à entrer le mot de passe de l’utilisateur distant:

remote_username@server_ip_address's password:

Une fois l’utilisateur authentifié, la clé publique ~/.ssh/id_rsa.pub sera ajoutée au fichier de l’utilisateur distant ~/.ssh/allowed_keys et la connexion sera fermée.

Sortie :

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.

 

Si, pour une raison quelconque, l’utilitaire ssh-copy-id n’est pas disponible sur votre ordinateur local, utilisez la commande suivante pour copier la clé publique:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Connectez-vous à votre serveur à l’aide des clés SSH

Après avoir effectué les étapes ci-dessus, vous devriez pouvoir vous connecter au serveur distant sans être invité à entrer un mot de passe.

Pour le tester, essayez de vous connecter à votre serveur via SSH:

ssh remote_username@server_ip_address

Si vous n’avez pas défini de phrase secrète pour la clé privée, vous serez immédiatement connecté. Sinon, vous serez invité à entrer la phrase de passe.

Désactivation de l’authentification par mot de passe SSH

La désactivation de l’authentification par mot de passe ajoute une couche de sécurité supplémentaire à votre serveur.

Avant de désactiver l’authentification par mot de passe SSH, assurez-vous que vous pouvez vous connecter à votre serveur sans mot de passe et que l’utilisateur avec lequel vous vous connectez dispose des privilèges sudo.

Connectez-vous à votre serveur distant:

ssh sudo_user@server_ip_address

Ouvrez le fichier de configuration SSH avec votre éditeur de texte:

sudo nano /etc/ssh/sshd_config

 

Recherchez les directives suivantes et modifiez-les comme suit:

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

 

Une fois terminé, enregistrez le fichier et redémarrez le service SSH en tapant:

sudo systemctl restart ssh

À ce stade, l’authentification par mot de passe est désactivée.

Conclusion

Nous vous avons montré comment configurer des clés SSH sur Ubuntu et configurer une authentification basée sur une clé SSH.

Vous pouvez utiliser la même clé pour gérer plusieurs serveurs distants. Vous avez également appris à désactiver l’authentification par mot de passe SSH et à ajouter une couche de sécurité supplémentaire à votre serveur.

LIRE AUSSI: Comment rediriger toutes les requettes HTTP vers HTTPS sur un serveur Web Nginx

Par défaut, SSH écoute sur le port 22. La modification du port SSH par défaut réduit le risque d’attaques automatisées. Pour simplifier votre flux de travail, utilisez le fichier de configuration SSH pour définir toutes vos connexions SSH.

Si vous avez des questions ou des commentaires, n’hésitez pas à laisser un commentaire.


Partagez sur: