Publié le : 23/07/2020

Utilisation d’une clé d’authentification SSH

C’est quoi un SSH

SSH, ou shell sécurisé, est un protocole crypté utilisé pour administrer et communiquer avec les serveurs. Lorsque vous travaillez avec un serveur Linux, il y a de fortes chances que vous passiez la plupart de votre temps dans une session de terminal connectée à votre serveur via SSH.

Bien qu’il existe différentes manières de se connecter à un serveur SSH, dans ce guide, nous nous concentrerons sur la configuration des clés SSH. Les clés SSH offrent un moyen simple mais extrêmement sécurisé de se connecter à votre serveur. Pour cette raison, c’est la méthode que nous recommandons à tous les utilisateurs.

Comment fonctionne une clé SSH ?

Un serveur SSH peut authentifier les clients à l’aide de différentes méthodes. L’authentification la plus élémentaire est l’authentification par mot de passe, qui est facile à utiliser, mais pas la plus sécurisée.

Bien que les mots de passe soient envoyés au serveur de manière sécurisée, ils ne sont généralement pas complexes ou suffisamment longs pour résister aux attaquants répétés et persistants. La puissance de traitement moderne combinée à des scripts automatisés rend le forçage brutal d’un compte protégé par mot de passe très possible. Bien qu’il existe d’autres méthodes pour ajouter une sécurité supplémentaire (fail2ban, etc.), les clés SSH s’avèrent être une alternative fiable et sécurisée.

Les paires de clés SSH sont deux clés cryptographiquement sécurisées qui peuvent être utilisées pour authentifier un client auprès d’un serveur SSH. Chaque paire de clés se compose d’une clé publique et d’une clé privée.

La clé privée est conservée par le client et doit être gardée absolument secrète. Toute compromission de la clé privée permettra à l’attaquant de se connecter aux serveurs configurés avec la clé publique associée sans authentification supplémentaire. Par mesure de précaution supplémentaire, la clé peut être chiffrée sur disque avec une phrase de passe.

La clé publique associée peut être partagée librement sans aucune conséquence négative. La clé publique peut être utilisée pour crypter les messages que seule la clé privée peut décrypter. Cette propriété est utilisée comme moyen d’authentification à l’aide de la paire de clés.

La clé publique est téléchargée sur un serveur distant auquel vous souhaitez pouvoir vous connecter avec SSH. La clé est ajoutée à un fichier spécial dans le compte utilisateur auquel vous vous connecterez appelé ~ / .ssh / authorized_keys.

Lorsqu’un client tente de s’authentifier à l’aide de clés SSH, le serveur peut tester le client pour savoir s’il est en possession de la clé privée. Si le client peut prouver qu’il possède la clé privée, une session shell est générée ou la commande demandée est exécutée.

Création d’une clé SSH

La création d’une clé SSH est décrit plus en détail dans la page Création de clé SSH sous n’importe quel système d’exploitation : Windows, Linux, MacOS.

Configuration d’un utilisateur SSH

Méthode 1 : utilisation de ssh-copy-id

Une fois que vous avez une paire de clés SSH, vous êtes prêt à configurer l’utilisateur système de votre application afin que vous puissiez SSH en utilisant votre clé privée.

Pour copier votre clé publique sur votre serveur, exécutez la commande suivante. Assurez-vous de remplacer « x.x.x.x » par l’adresse IP de votre serveur et SYSUSER par le nom de l’utilisateur système auquel appartient votre application.

ssh-copy-id SYSUSER@x.x.x.x

Méthode 2 : configuration manuelle

Si vous ne disposez pas de la commande ssh-copy-id (par exemple, si vous utilisez Windows), vous pouvez à la place SSH sur votre serveur et créer manuellement le fichier .ssh/authorized_keys afin qu’il contienne votre clé publique.

Créer le répertoire avec les droits adéquats en éxecutant les commandes ci-dessous :

(umask 077 && test -d ~/.ssh || mkdir ~/.ssh)
(umask 077 && touch ~/.ssh/authorized_keys)

Une fois que c’est fait, éditer le fichier .ssh/authorized_keys en utilisant un éditeur de texte. Copier-coller le contenu de id_rsa.pub dans le fichier .ssh/authorized_keys.

Connexion avec la clé privée

Vous pouvez maintenant SSH dans votre serveur en utilisant votre clé privée. Depuis la ligne de commande, vous pouvez utiliser :

ssh SYSUSER@x.x.x.x

Si vous n’avez pas créé votre clé à l’emplacement par défaut, vous devrez spécifier l’emplacement :

ssh -i ~/.ssh/custom_key_name SYSUSER@x.x.x.x

Si vous utilisez un client Windows SSH, tel que PuTTy, regardez dans les paramètres de configuration pour spécifier le chemin d’accès à votre clé privée.

Accorder l’accès à plusieurs clés

Le fichier .ssh / authorized_keys que vous avez créé ci-dessus utilise un format très simple: il peut contenir de nombreuses clés tant que vous placez une clé sur chaque ligne du fichier.

Si vous avez plusieurs clés (par exemple, une sur chacun de vos ordinateurs portables) ou plusieurs développeurs auxquels vous devez accorder l’accès, suivez simplement les mêmes instructions ci-dessus en utilisant ssh-copy-id ou en éditant manuellement le fichier pour coller des clés supplémentaires, une sur chaque ligne.

Lorsque vous avez terminé, le fichier .ssh / allowed_keys ressemblera à quelque chose comme ceci (ne copiez pas ceci, utilisez vos propres clés publiques):

ssh-rsa AAAAC3NzaC1yc2EAAAADAQAAAABAQDSkT3A1j89RT/540ghIMHXIVwNlAEM3Wt5qVG7Y/wYwtsJ8iCszg4/lXQsfLFxYmEVe8L9atgtMGCi5QdYPl4X/c+5YxFfm88Yjfx+2xEgUdOr864eaI22yaNMQ0AlyilmK+PcSyxKP4dzkf6B5Nsw8lhfB5n9F5zd6GHLLjOGuBbHYlesKJKnt2cMzzS90BdRk73qW6wJ+MCUWo+cyBFZVGOzrjJGEcHewOCbVs+IJWBFSi6w1enbKGc+RY9KrnzeDKWWqzYnNofiHGVFAuMxrmZOasqlTIKiC2UK3RmLxZicWiQmPnpnjJRo7pL0oYM9rsIWzD6i2S9szDy6aZ xxx@zzz
ssh-rsa ABAAB3Nza1yc2EAAkADAQABAAABAQCzlL9Wo8ywEFXSvMJ8FYmxP6HHHMDTyYAWwM3AOtsc96DcYVQIJ5VsydZf5/4NWun55MqnzdnGB2IfjQvOrW4JEn0cI5UFTvAG4PfYZb00Hbvwho8JsSAwChvWU6IuhgiiUBofKSMMifKg+pEJ0dLjks2GUcfxeBwbNnAgxsBvY6BCXRfezIddPlqyfWfnftqnafIFvuiRFB1DeeBr24kik/550MaieQpJ848+MgIeVCjko4NPP3ssJ/1jhGEHOTlGJpWKGDqQK+QBaOQZh7JB7ehTK+pwIFHbUaeAkr66iVYJuC05iA7ot9FZX8XGkxgmhlnaFHNf0l8ynosanqt aaa@ttt

Information additionnelle

Récupérez votre clé publique à partir de votre clé privée

La commande suivante récupère la clé publique à partir d’une clé privée:

ssh-keygen -y -f /path/to/your_private_key_file (exemple : /root/.ssh/id_rsa ou ~/.ssh/custom_key_name)

Cela peut être utile, par exemple, si votre fournisseur de serveur a généré votre clé SSH pour vous et que vous n’avez pu télécharger que la partie clé privée de la paire de clés.

Notez que vous ne pouvez pas récupérer la clé privée si vous ne disposez que de la clé publique.

Correction des autorisations sur le répertoire .ssh

Les instructions de cet article créeront le répertoire .ssh de votre serveur et le fichier .ssh / authorized_keys avec les autorisations appropriées. Cependant, si vous les avez créés vous-même et que vous devez corriger les autorisations, vous pouvez exécuter les commandes suivantes sur votre serveur en SSH en tant qu’utilisateur système de votre application.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Désactivation de l’authentification par mot de passe

REMARQUE : lorsque vous changez quoi que ce soit concernant l’accès à SSH (ports, méthodes d’authentification, etc.), il est très fortement recommandé de laisser une session SSH racine active ouverte jusqu’à ce que tout fonctionne comme prévu. Cela garantit que vous avez un moyen d’annuler les modifications en cas de problème et que les connexions ne fonctionnent pas correctement.

Par mesure de sécurité supplémentaire, une fois que vous avez configuré les clés SSH, vous pouvez désactiver complètement l’authentification par mot de passe. Cela signifie qu’aucun utilisateur ne pourra se connecter à SSH sans clés SSH. Quiconque saisit un mot de passe recevra un message comme:

Permission denied (publickey,password).

Ou :

No supported authentication methods available

La désactivation de l’authentification par mot de passe est un excellent moyen d’améliorer la sécurité du serveur.

Ensuite, testez si vous pouvez vous connecter avec un mot de passe en ouvrant une nouvelle session SSH sur le serveur. Les mots de passe ne devraient pas pouvoir être utilisés et, si tout a été fait correctement, une erreur sera émise lorsque quelqu’un essaiera d’utiliser un mot de passe. À moins que ce paramètre ne soit modifié pour permettre l’authentification par mot de passe, aucun utilisateur ne pourra se connecter sans une clé SSH configurée.

Les mots clés rattachés à cet article : Linux  -  SSH

Nos clients

Une vingtaine de clients nationaux et internationaux