GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment utiliser l'authentification par clé publique avec SSH

Présentation

Authentification par clé publique est une méthode de journalisation sécurisée utilisant SSH. Au lieu d'un mot de passe, la procédure utilise une paire de clés cryptographiques pour la validation. Bien que l'utilisation d'un mot de passe fort aide à prévenir les attaques par force brute, l'authentification par clé publique offre une force cryptographique et des connexions automatisées sans mot de passe.

Ce guide fournit des instructions étape par étape sur la façon de mettre en œuvre l'authentification par clé publique à partir de zéro.

Prérequis

  • Accès à la ligne de commande/au terminal avec privilèges d'administrateur.
  • SSH activé. Suivez nos guides pour activer SSH sous Linux :Ubuntu 18.04, Debian 9 ou 10.
  • Un serveur local et distant.

Utilisation de la clé SSH pour l'authentification

L'authentification par clé publique SSH comporte quatre étapes :

1. Générez une clé privée et publique, connue sous le nom de paire de clés . La clé privée reste sur la machine locale.

2. Ajoutez la clé publique correspondante au serveur.

3. Le serveur stocke et marque la clé publique comme approuvée.

4. Le serveur autorise l'accès à toute personne qui prouve la propriété de la clé privée correspondante.

Le modèle suppose que la clé privée est sécurisée. L'ajout d'une phrase de passe pour chiffrer la clé privée ajoute une couche de sécurité suffisante pour la plupart des cas basés sur l'utilisateur. À des fins d'automatisation, les logiciels et pratiques de gestion des clés s'appliquent, car la clé privée reste sans protection dans le cas contraire.

Génération d'une paire de clés SSH

Générez la paire de clés SSH sur le serveur local à l'aide d'OpenSSH. Les instructions de base pour Linux, macOS et Windows sont décrites ci-dessous.

Linux et macOS

1. Ouvrez le terminal (CTRL +ALT +T ).

2. Vérifiez les clés existantes avec :

ls -l ~/.ssh/id*

S'il existe déjà des clés, la sortie affiche le contenu du répertoire :

La génération de nouvelles clés écrase les clés actuelles par défaut. Cependant, indiquer un nouveau nom pour les clés les enregistre dans des fichiers différents.

S'il n'y a pas de clés existantes, la sortie indique que le dossier n'existe pas :

3. Créez le répertoire à l'aide de la commande mkdir pour stocker la nouvelle paire de clés :

mkdir ~/.ssh

4. Modifiez les autorisations à 700 :

chmod 700 ~/.ssh

5. La commande suivante démarre le générateur de clé :

ssh-keygen

La sortie imprime un message indiquant que la commande a été exécutée avec succès. Ensuite, le programme demande où enregistrer le fichier :

Le répertoire et le fichier par défaut pour le stockage des clés est /home//.ssh/id_rsa . Si vous avez des clés existantes que vous souhaitez conserver, entrez un nouveau nom de fichier. Sinon, appuyez sur Entrée pour enregistrer à l'emplacement par défaut. Si des clés existent déjà à cet emplacement, le programme écrase les données.

6. Enfin, saisissez une phrase de passe pour sécuriser la clé. Appuyez sur Entrée et confirmez la phrase de passe une fois de plus lorsque vous y êtes invité. Le mot de passe est requis chaque fois que vous utilisez la clé pour l'authentification.

7. Enfin, le programme imprime des informations sur l'endroit où les clés sont stockées. De plus, une représentation numérique et graphique s'imprime également sur la console.

8. Confirmez que les clés sont dans le répertoire en vérifiant le contenu :

 ls -l ~/.ssh/

Le répertoire contient maintenant deux fichiers :

  • id_rsa est la clé privée.
  • id_rsa.pub est la clé publique.

Windows

1. Utilisez le champ de recherche Windows pour trouver cmd et ouvrez la fenêtre d'invite de commande.

2. Dans l'invite, saisissez :

ssh-keygen

La commande lance le programme de génération de la paire de clés.

3. Si vous configurez un emplacement spécifique pour les clés, saisissez le chemin maintenant. Sinon, appuyez sur Entrée pour enregistrer les clés dans le chemin par défaut.

Si des clés existent à cet emplacement, la sortie demande de confirmer l'écrasement. Tapez O pour confirmer et appuyez sur Entrée pour continuer la configuration.

4. Saisissez la phrase de passe pour chiffrer la clé privée. Entrez à nouveau la même phrase de passe et appuyez sur Entrée pour terminer la génération de la paire de clés.

Configuration d'un ou plusieurs utilisateurs SSH/SFTP pour votre clé

Après avoir généré une paire de clés, l'étape suivante consiste à configurer la machine serveur pour les utilisateurs SSH et SFTP pour la clé.

1. Sur la machine serveur, vérifiez si le ~/.ssh dossier existe :

ls -l ~/.ssh/

Si le répertoire est inexistant, créez le dossier :

mkdir ~/.ssh

Ensuite, modifiez les autorisations avec :

chmod 700 ~/.ssh

2. Créez un fichier appelé authorized_keys dans le ~/.ssh répertoire :

touch authorized_keys

Modifiez les autorisations :

chmod 600 ~/.ssh/authorized_keys

3. Ensuite, ouvrez les authorized_keys fichier à l'aide d'un éditeur de texte. Copiez le contenu de la clé publique dans authorized_keys dossier. Pour plusieurs utilisateurs et clés, copiez chaque nouvelle clé sur une nouvelle ligne. Enregistrez le fichier et fermez.

Sous Linux, utilisez cette commande pour copier la clé automatiquement :

ssh-copy-id <username>@<host>

La sortie indique le nombre de clés automatiquement copiées sur le serveur avec d'autres instructions.

Pour transférer des fichiers via SSH, plusieurs solutions existent :

  • Utiliser SSHFS pour Linux, macOS ou Windows
  • Utilisez RSync comme alternative à Linux.

Connexion

Après avoir généré et copié les clés, connectez-vous à votre serveur depuis la machine locale à l'aide de la commande suivante :

ssh <username>@<host>

La commande affiche une invite pour entrer le mot de passe de la clé privée :

Enfin, saisissez le mot de passe pour déverrouiller la clé :

Une fois vérifiée, la commande vous connecte au serveur via SSH.

Pourquoi devriez-vous utiliser l'authentification par clé publique avec SSH ?

L'authentification par clé publique est un moyen plus sûr et recommandé de se connecter avec SSH au lieu d'une connexion par mot de passe classique.

Certains avantages sont :

  • La paire de clés SSH est plus difficile à pirater. Comme la plupart des clés SSH ont une longueur d'au moins 1024 bits, ce qui équivaut à un mot de passe de 12 caractères, la connexion est sécurisée. Pour améliorer encore la sécurité, augmentez le nombre de bits lors de la génération des clés.
  • Le contenu des clés est généré à l'aide d'un algorithme informatique, ce qui les rend plus difficiles à prévoir.
  • Seule la machine sur laquelle réside la clé privée a accès.
  • L'authentification par clé publique ne montre jamais le contenu de la clé privée au serveur. En cas de compromission du serveur, la machine locale reste en sécurité.
  • Un mot de passe ajouté à la clé privée ajoute une authentification multifacteur.

Ubuntu
  1. Comment utiliser les clés SSH avec Plesk

  2. Comment configurer des clés SSH

  3. Comment récupérer la clé publique d'une clé privée Ssh ?

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

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

Comment configurer les clés SSH – Windows OS ?

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

Comment utiliser une clé SSH avec des utilisateurs non root

Comment utiliser l'authentification à deux facteurs avec Ubuntu

Comment configurer l'authentification basée sur la clé Ssh pour Github en utilisant le fichier ~/.ssh/config ?

Comment ajouter une clé publique SSH au serveur