Retour au blog

Configuration de votre serveur Linux pour utiliser l'authentification par clé SSH

Configuration de votre serveur Linux pour utiliser l'authentification par clé SSH

SSH sur un serveur Linux

SSH, également connu sous le nom de secure shell, est un protocole qui peut être utilisé pour se connecter et communiquer avec un serveur. Vous pouvez vous connecter à votre serveur Linux pour une session de terminal en utilisant ce protocole chiffré. Si vous utilisez un serveur OpenSSH, il existe principalement deux manières différentes de procéder au processus d'authentification. La première est votre authentification standard par mot de passe. Ici, vous utilisez simplement vos identifiants de nom d'utilisateur et de mot de passe pour accéder à votre compte. L'autre méthode consiste à configurer votre serveur Linux pour une authentification par clé SSH.

Dans ce guide, nous nous concentrerons sur la manière dont vous pouvez configurer votre serveur Linux pour utiliser des clés SSH comme moyen principal d'authentification. Nous verrons également pourquoi les clés SSH sont souvent préférées au mécanisme habituel de protection par mot de passe.

Que sont les clés SSH ?

Les clés SSH sont similaires aux identifiants que vous utiliseriez pour vous connecter à votre compte sur le serveur. Au lieu de saisir votre nom d'utilisateur et votre mot de passe, vous utilisez la paire de clés SSH, qui est également un identifiant d'accès. Bien que les clés soient cryptographiques, vous devez les traiter comme des identifiants d'authentification car c'est la fonction qu'elles remplissent.

Une clé SSH typique comporte deux parties : une clé autorisée et une clé d'identité. La clé autorisée est la clé publique qui fonctionne en combinaison avec votre clé d'identité privée pour vous donner accès au compte. La clé publique est située sur le serveur distant auquel vous souhaitez vous connecter en SSH et reste dans le fichier ~/.ssh/authorized_keys associé à votre compte utilisateur. Les clés d'identité servent à vérifier votre identité en tant qu'utilisateur légitime afin de garantir que seul le personnel autorisé peut accéder au compte donné. Collectivement, ces clés sont appelées clés utilisateur car elles authentifient l'identité de l'utilisateur. Une fois que le serveur est capable de vérifier les deux clés, une session shell est initiée afin d'exécuter vos commandes.

Vous disposez également de clés d'hôte et de clés de session. Le protocole authentifie l'ordinateur local, le système ou le serveur à l'aide de la clé d'hôte. Les clés de session permettent de chiffrer le flux de données sur la connexion. Cela rend votre session et l'activité correspondante beaucoup plus sûres et sécurisées.

Les clés SSH plutôt que la protection par mot de passe

La principale raison pour laquelle l'authentification par clé SSH est préférable à la protection par mot de passe est que cette dernière peut vous rendre vulnérable aux cyberattaques. La plupart des individus n'utilisent pas de mots de passe extrêmement complexes afin de pouvoir s'en souvenir lorsqu'ils doivent se connecter. Par conséquent, cela crée une zone de vulnérabilité. De nombreux attaquants utilisent la force brute pour casser le mot de passe relativement simple et s'introduire dans le compte. C'est devenu particulièrement facile de nos jours en raison de l'automatisation et des technologies de piratage avancées.

Les clés SSH, en revanche, offrent un moyen beaucoup plus sécurisé d'accéder à votre compte. Comme nous l'avons mentionné précédemment, cette méthode utilise une clé publique et une clé privée pour authentifier l'identité d'un client. Bien que vous puissiez partager la clé publique avec n'importe qui, vous devez garder la clé privée secrète. Lorsqu'elles sont associées, la clé publique déchiffre la clé privée pour authentifier votre identité. De plus, vous pouvez renforcer la protection en ajoutant une phrase secrète par-dessus la paire de clés. Nous reparlerons de la phrase secrète plus loin dans ce guide. Cependant, même sans phrase secrète, votre clé SSH privée est conservée de manière extrêmement sûre sur votre ordinateur local. Le réseau n'est jamais en mesure d'accéder directement à la clé, qui se trouve dans un répertoire restreint et bénéficie de permissions restreintes.

Génération de clés SSH

Pour générer votre paire de clés SSH, vous devez parcourir la suite d'outils OpenSSH et localiser ssh-keygen. Il s'agit d'un outil utilitaire spécial qui vous permet de générer une paire de clés SSH d'environ 2048 bits. Commencez par exécuter cette commande :

Cela affichera le message suivant :

Le message générera une clé privée nommée id_rsa et une clé publique nommée id_rsa.pub. À ce stade, vous pouvez choisir l'emplacement de la clé. Nous vous recommandons de conserver l'emplacement par défaut en appuyant sur Entrée. Conserver l'emplacement par défaut garantit que le serveur localisera et vérifiera automatiquement les clés chaque fois que vous vous connecterez à l'aide de ce système. L'emplacement par défaut est le répertoire ~/.ssh dans le répertoire personnel. Si vous préférez choisir un autre emplacement, saisissez-le.

Réécriture des clés SSH plus anciennes

Il est important de noter que vous ne pouvez avoir qu'une seule paire de clés SSH sur votre système à la fois. Cela signifie que si vous avez déjà généré et enregistré une paire de clés sur le système, vous verrez le message suivant :

Pour continuer à créer et à enregistrer votre nouvelle paire de clés SSH, vous devez supprimer celle existante. Attention : si vous écrasez la clé déjà enregistrée sur le disque, vous ne pourrez plus l'utiliser à des fins d'authentification. Il s'agit d'un processus irréversible, assurez-vous donc d'être absolument certain de vouloir écraser l'ancienne paire de clés.

Définir une phrase de passe

Une fois que vous aurez configuré les clés dans le répertoire, il vous sera demandé si vous souhaitez fournir une phrase de passe :

La phrase de passe est facultative - vous pouvez choisir de l'ignorer. Cependant, elle ajoute une couche de sécurité supplémentaire pour votre clé privée en la chiffrant sur le disque. Si vous choisissez d'utiliser une phrase de passe, vous devrez la saisir correctement à chaque fois que vous tenterez de vous connecter à l'aide de cette paire de clés SSH :

Enfin, vous devriez maintenant disposer de vos clés SSH que vous pouvez utiliser pour authentifier le client.

Intégration de votre clé SSH dans votre compte de serveur

Avant d'utiliser les clés pour l'authentification, vous devez intégrer la clé publique sur le serveur Linux distant. Ensuite, nous vous montrerons comment procéder lors de la création de votre serveur CloudSigma. Tout d'abord, vous devez trouver votre clé SSH publique afin de pouvoir la copier et la coller. Si vous avez utilisé la méthode ci-dessus pour générer votre paire de clés SSH, vous pouvez trouver la clé publique en saisissant ce qui suit :

Cela affichera la clé SSH publique comme ceci :

Copiez cette valeur pour l'utiliser plus tard. Lors de la création d'un serveur avec CloudSigma, vous avez la possibilité d'ajouter une clé SSH après avoir sélectionné la taille du serveur et l'image du système d'exploitation :

single server creation

Cliquez sur Ajouter et collez ce que vous avez copié pour intégrer la clé SSH dans votre serveur. Par conséquent, chaque fois que vous démarrerez votre serveur, il disposera déjà de la clé SSH injectée.

Copier une clé publique vers un serveur existant

Bien que la méthode ci-dessus fonctionne lors de la création d'un nouveau serveur, est-il possible d'intégrer une clé SSH dans un serveur existant ? La réponse est oui, et il existe plusieurs façons de procéder en fonction des outils dont vous disposez.

Utilisation de SSH-Copy-ID

C'est le moyen le plus simple et le plus facile de copier une clé publique. Tout ce dont vous avez besoin est de l'outil utilitaire ssh-copy-id que vous trouverez dans la suite OpenSSH standard. Mais avant de mettre cette méthode en pratique, assurez-vous que l'authentification par mot de passe est activée sur votre serveur. Pour copier la clé, vous appliquerez la syntaxe ssh-copy-id puis saisirez l'hôte distant auquel vous souhaitez vous connecter. Vous devrez également spécifier le compte auquel vous vous connectez. Vous devez disposer d'un accès par mot de passe au compte, afin que votre clé soit copiée au bon endroit. La commande devrait ressembler à ceci :

Cela peut entraîner l'apparition d'un message comme le suivant sur votre écran :

Cela se produit généralement s'il s'agit de votre première connexion à cet hôte distant particulier. Cela signifie simplement que l'ordinateur n'a pas réussi à reconnaître l'hôte. Tout ce que vous avez à faire est de taper « yes » et d'appuyer sur Entrée. Une fois cela fait, l'outil analysera le compte pour trouver votre clé publique. Après l'avoir localisée, il vous demandera de saisir le mot de passe de votre compte :

Ensuite, vous pouvez saisir votre mot de passe. Lorsque vous êtes connecté à votre compte, l'outil copiera le contenu de la clé ~/.ssh/id_rsa.pub et le collera sous authorized_keys dans le répertoire ~/.ssh de votre compte distant. Vous verrez alors le message suivant :

Cela signifie que vous avez copié avec succès votre clé publique sur votre serveur distant existant.

Utilisation de SSH

Il s'agit d'une méthode plutôt conventionnelle pour copier votre clé publique sur un serveur. Il est préférable de l'utiliser si vous n'avez pas accès à l'outil ssh-copy-id. Là encore, vous devez disposer d'un accès par mot de passe à votre compte. Ce que vous faites essentiellement, c'est afficher le contenu de la clé publique sur votre ordinateur et le transférer vers le serveur distant via la connexion SSH établie entre eux. La commande que vous utiliserez à cette fin doit être la suivante :

Comme vous pouvez le voir, nous avons spécifié que la clé doit être placée dans le fichier authorized_keys du répertoire ~/.ssh sur le serveur. L'utilisation du symbole >> garantit également que nous ajoutons des clés au lieu de les écraser. Après avoir exécuté la commande, vous pouvez voir ce message :

De même que pour le message précédent, cela signifie que l'ordinateur n'a pas reconnu l'hôte distant. Saisissez « yes » et appuyez sur Entrée pour continuer. Maintenant, vous allez saisir le mot de passe du compte :

Une fois le mot de passe vérifié, la clé sera copiée dans un fichier de votre compte utilisateur comme spécifié.

Manuellement

Si vous ne disposez pas d'un accès par mot de passe à votre compte sur le serveur distant, vous pouvez copier la clé publique manuellement. Le but est de transférer la valeur du fichier id_rsa.pub dans le fichier ~/.ssh/authorized_keys de votre appareil distant. Comme nous le savons déjà, nous pouvons visualiser la valeur de la clé id_rsa.pub en utilisant cette commande :

Le contenu de votre clé publique SSH apparaîtra comme ceci :

Ensuite, vous devez accéder à votre compte sur l'hôte distant par tous les moyens disponibles. Une fois connecté, vérifiez que le répertoire ~/.ssh est présent. Si ce n'est pas le cas, vous pouvez exécuter la commande suivante pour le créer :

Maintenant, vous pouvez utiliser cette commande pour ajouter le contenu du fichier id_rsa.pub au fichier authorized_keys dans ce répertoire ~/.ssh sur le serveur distant :

Au lieu de saisir « public_key_string » dans cette commande, vous devrez entrer le contenu de la clé que vous avez extraite en exécutant la commande cat ~/.ssh/id_rsa.pub précédemment.

Authentification avec votre clé SSH

Maintenant, vous pouvez facilement accéder à votre compte en utilisant uniquement vos clés SSH. Cela signifie que vous n'avez plus besoin de votre mot de passe pour accéder à votre compte de serveur. Vous utiliserez les identifiants que vous utilisez habituellement pour vous connecter :

Cela peut faire apparaître le message suivant :

Ne vous inquiétez pas si vous voyez ce message. Cela signifie simplement que le système local n'est pas en mesure de reconnaître l'hôte distant. Cela se produit généralement si vous vous connectez à l'hôte pour la toute première fois. Tout ce que vous avez à faire est de taper « yes » et d'appuyer sur Entrée. Pour revenir à certaines des étapes précédentes, si vous avez appliqué une phrase de passe, c'est ici que vous devrez la saisir. Si vous ne l'avez pas fait, vous vous connecterez directement à votre compte après l'authentification des clés SSH. Cela déclenchera l'ouverture d'une nouvelle session de shell via votre compte actuel sur l'ordinateur local.

Comment désactiver l'authentification par mot de passe sur votre serveur ?

Maintenant que vous savez comment configurer vos clés SSH, vous devez désactiver l'authentification par mot de passe. Même si vous pouvez utiliser les clés SSH pour l'authentification, vous restez vulnérable aux attaques par force brute si votre processus d'authentification par mot de passe est actif. Avant de désactiver le mécanisme d'authentification par mot de passe, assurez-vous que la configuration de l'authentification par clé SSH concerne le compte root sur le serveur ou que le compte configuré dispose d'un accès sudo. La raison de cette vérification est de vous assurer que vous conservez un accès administratif au compte même lorsque les mots de passe sont désactivés. Vous pouvez maintenant utiliser cette clé SSH pour vous connecter à votre compte de serveur. L'étape suivante consiste à ouvrir le fichier de configuration du démon SSH :

Ici, vous devez rechercher la directive suivante :

Vous devez décommenter cette ligne et changer la valeur en « no », comme suit :

Cela désactivera l'authentification par mot de passe. Enregistrez simplement le fichier et fermez-le lorsque vous avez terminé. Enfin, vous devez redémarrer votre appareil pour appliquer les modifications. Si vous utilisez un appareil Ubuntu ou Debian, vous pouvez également utiliser la commande suivante pour désactiver l'accès par mot de passe :

Pour vous assurer que votre démon, ou sshd, n'autorise que l'authentification par SSH sur le serveur sur les machines CentOS ou Fedora, utilisez la commande :

Conclusion

Une fois que vous aurez terminé toutes ces étapes, l'authentification par clé SSH devrait être configurée et opérationnelle sur votre serveur.  Vous pouvez désormais être assuré que vos serveurs sont sécurisés et protégés !

Bonne informatique !

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.