Comment générer une clé SSH publique/privée sous Linux

Générer une clé Ssh Linux 00 Image en vedette

Si vous utilisez fréquemment SSH pour vous connecter à un hôte distant, l’une des manières de sécuriser votre serveur SSH est d’utiliser une clé SSH publique/privée pour éviter la transmission de mots de passe sur le réseau. Cela peut également prévenir les attaques par force brute.

Sous Linux, créer une clé SSH publique/privée est facile.

  1. Ouvrez un terminal. Tapez :
ssh-keygen-t rsa

Alternativement, vous pouvez également utiliser la technologie DSA (Digital Signing Algorithm) pour créer la clé publique/privée.

ssh-keygen-t dsa

Remarque : il y a eu beaucoup de débats sur la sécurité de DSA et RSA. À mon avis, à moins que vous ne soyez très pointilleux et que vous aimiez plonger dans les détails techniques entre les deux technologies, cela n’a pas d’importance laquelle des deux vous choisissez. Les deux fonctionneront bien.

  1. À l’écran suivant, vous devriez voir une invite qui demande l’emplacement où enregistrer la clé. L’emplacement par défaut est le dossier .ssh dans votre répertoire personnel. Appuyez sur Entrée pour accepter le paramètre par défaut.

Générer une clé Ssh Linux 01 Créer une nouvelle clé

  1. Vous serez invité à entrer une phrase secrète – NON la phrase secrète pour vous connecter à votre hôte distant, mais la phrase secrète pour déverrouiller la clé privée afin que personne ne puisse accéder à votre serveur distant même s’il obtient votre clé privée. La phrase secrète est optionnelle. Pour la laisser vide, appuyez simplement sur Entrée.

Générer une clé Ssh Linux 02 Ajouter une nouvelle phrase secrète

  1. Votre clé SSH publique et privée devrait maintenant être générée. Ouvrez le gestionnaire de fichiers et accédez au répertoire .ssh. Vous devriez voir deux fichiers : id_rsa et id_rsa.pub.

Générer une clé Ssh Linux 03 Lister les fichiers du dossier Ssh

  1. Téléchargez votre nouvelle clé SSH publique vers votre hôte distant en exécutant la commande suivante :
ssh-copy-id nom_utilisateur@adresse-ip-hôte-distant

Générer une clé Ssh Linux 04 Copier la clé vers l'hôte distant

  1. Connectez-vous à votre hôte distant et modifiez votre fichier de configuration SSH :
ssh nom_utilisateur@adresse-ip-hôte-distant  
sudonano/etc/ssh/sshd_config

Faites défiler le fichier de configuration et assurez-vous que les attributs suivants sont définis correctement :

RSAAuthentication yes  
PubkeyAuthentication yes  
PasswordAuthentication no

Appuyez sur Ctrl + O pour écrire et enregistrer le fichier, puis Ctrl + X pour fermer le fichier.

Générer une clé Ssh Linux 05 Modifier le démon SSH de l'hôte distant

  1. Redémarrez le serveur SSH sur l’hôte distant :
sudo systemctl restart ssh

C’est fait. Vous pouvez maintenant vous connecter à votre hôte distant avec la commande suivante :

ssh nom_utilisateur@adresse-ip-hôte-distant

Générer une clé Ssh Linux 06 Connexion SSH sans problème vers l'hôte distant

Questions Fréquemment Posées

J’ai copié ma clé SSH sur mon serveur distant et je reçois une erreur “Permission refusée”.

Ce problème est probablement dû à un problème avec le dossier “.ssh” de votre hôte distant. Par défaut, le démon SSH rejette toute connexion entrante si son dossier de configuration et son fichier “authorized_keys” n’ont pas les bons bits de permission.

Pour changer les permissions des fichiers et des dossiers, accédez à une console locale pour votre machine distante, puis allez dans votre répertoire “/home” et exécutez : chmod 700 /home/$USER/.ssh && chmod 600 /home/$USER/.ssh/authorized_keys. Enfin, redémarrez le démon pour appliquer vos nouveaux paramètres : sudo systemctl restart ssh.

Est-il possible de créer plusieurs clés SSH pour le même serveur distant ?

Oui ! Cependant, vous devez vous assurer que chaque clé SSH sur votre machine a un nom de fichier unique en exécutant : ssh-keygen -f /home/$USER/.ssh/nom_fichier.

En dehors de cela, assurez-vous de spécifier la clé que vous souhaitez utiliser pour vous connecter à votre hôte distant en exécutant : ssh -i /home/$USER/.ssh/nom_fichier [email protected]ôte.distant.

Est-il possible d’importer une nouvelle clé SSH sur un hôte distant avec une ancienne clé fonctionnelle ?

Oui ! D’abord, importez votre nouvelle clé dans l’agent d’authentification SSH : ssh-add. Ensuite, connectez-vous à votre ancienne machine et importez sa clé dans le même agent d’authentification : ssh -A adresse.machine.ancienne && ssh-add -c.

Enfin, quittez l’ancienne machine en appuyant sur Ctrl + D et connectez-vous à votre hôte distant avec vos nouvelles et anciennes clés.

Crédit image : Unsplash. Toutes les modifications et captures d’écran par Ramces Red.