GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer des clés SSH sur Ubuntu 20.04

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 courantes 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 elle est plus sûre et plus pratique que l'authentification traditionnelle par mot de passe.

Cet article explique comment générer des clés SSH sur les systèmes Ubuntu 20.04. Nous vous montrerons également comment configurer une authentification basée sur une clé SSH et vous connecter à des serveurs Linux distants sans saisir de mot de passe.

Créer des clés SSH sur Ubuntu #

Il y a de fortes chances que vous ayez déjà une paire de clés SSH sur votre machine cliente Ubuntu. Si vous générez une nouvelle paire de clés, l'ancienne sera écrasée. Pour vérifier si les fichiers de clés existent, exécutez le ls suivant commande :

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

Si la commande renvoie quelque chose comme No such file or directory , ou no matches found , 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 conserver les clés existantes, soit sauvegarder les anciennes clés et générer une nouvelle paire.

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

ssh-keygen -t rsa -b 4096 -C "[email protected]"

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 Enter pour accepter et continuer.

Ensuite, il vous sera demandé de saisir une phrase de passe sécurisée. Une phrase de passe 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 Enter .

Enter passphrase (empty for no passphrase):

L'ensemble de l'interaction ressemble à ceci :

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

ls ~/.ssh/id_*
/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 ordinateur client Ubuntu.

Copier 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é pour copier la clé publique sur le serveur est d'utiliser le ssh-copy-id outil. Sur votre machine locale, tapez :

ssh-copy-id remote_username@server_ip_address

Vous serez invité à saisir 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é à l'utilisateur distant ~/.ssh/authorized_keys fichier, et la connexion sera fermée.

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 le 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 suivi 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é à saisir la phrase secrète.

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 :

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Une fois cela fait, 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.


Ubuntu
  1. Comment configurer des clés SSH

  2. Comment configurer des clés SSH sur Ubuntu 16.04

  3. Comment configurer des clés SSH sur Ubuntu 18.04

  4. Comment configurer des clés SSH sur Debian

  5. Comment configurer les clés autorisées SSH sur Ubuntu

Comment configurer des clés SSH sur Debian 9

Comment configurer des clés SSH sur Debian 10

Comment configurer les clés SSH – Windows OS ?

Comment configurer une clé SSH sur un serveur Plesk

Comment configurer des clés SSH sur Debian 11 Linux

Comment améliorer la sécurité SSH sur Ubuntu 18.04