Clés SSH

La connexion distante au serveur nécessite toujours l'authentification du client afin d'empêcher des personnes non autorisées d'obtenir l'accès. La méthode d'authentification de base est l'utilisation d'un mot de passe. Mais les mots de passe présentent un inconvénient : ils peuvent être décryptés, surtout si le propriétaire du serveur n'a pas veillé à la complexité du mot de passe.

Pour les connexions SSH aux serveurs Linux, une méthode alternative est recommandée : l'authentification par clés SSH. Ces clés sont une paire : une clé privée et une clé publique. La clé privée doit être stockée, respectivement, dans l'environnement privé du client, et la clé publique est envoyée au serveur et placée dans le authorized_keys fichier.

Cette méthode d'authentification n'est pas applicable aux serveurs Windows, car la connexion RDP ne dispose pas d'une telle fonctionnalité.

L'utilisation des clés SSH n'est pas une exigence système de la plateforme Navixy, mais elle est fortement recommandée aux propriétaires de serveur pour des raisons de sécurité.

Création de clés SSH sous Linux

Si votre poste de travail utilise un système d'exploitation basé sur Linux, vous devez utiliser le openssh package. Il peut être préinstallé ou nécessiter une installation supplémentaire. Sur Ubuntu et Debian, il s'installe avec cette commande :

apt -y install openssh-server

Pour d'autres distributions, la commande peut être différente.

Pour commencer à générer les clés, exécutez cette commande :

ssh-keygen

Il vous sera demandé de saisir le chemin du fichier où les clés seront placées. Vous pouvez laisser l'emplacement par défaut (entre parenthèses) en appuyant sur Entrée, ou spécifier un emplacement et un nom de fichier personnalisés.

Ensuite, il vous sera demandé de saisir une phrase de passe. Il s'agit d'une mesure de sécurité supplémentaire pour protéger votre clé contre une utilisation par des tiers en cas de compromission. Cette étape est facultative.

Une fois que vous avez généré avec succès une paire de clés, vous verrez une notification :

Avec l'emplacement par défaut, la clé publique est stockée dans /root/.ssh/id_rsa.pub, et la clé privée est stockée dans /root/.ssh/id_rsa.

Vous devez maintenant copier la clé publique sur votre serveur, dans le répertoire de l'utilisateur au nom duquel la connexion distante sera effectuée. Supposons que le nom d'utilisateur soit navixy. Connectez-vous à votre serveur et éditez le fichier avec n'importe quel éditeur de texte, par exemple :

vi /home/navixy/.ssh/authorized_keys

Indiquez le contenu de votre clé publique après ssh-rsa. Vous pouvez ajouter un court commentaire après la clé pour expliquer son objectif.

Enregistrez le fichier.

Vous pouvez maintenant vous connecter au serveur en utilisant la clé SSH nouvellement créée.

ssh -i id_rsa [email protected]

Après cela, vous pouvez désactiver l'authentification par mot de passe sur votre serveur.

Création de clés SSH sous Windows

Si vous utilisez Windows, le client le plus courant pour se connecter à un serveur via SSH est PuTTY. Il existe également de nombreux clients alternatifs, mais ils servent tous essentiellement le même objectif, donc le choix vous revient.

Sous Windows, la génération de clés SSH s'effectue à l'aide de PuTTYgen l'utilitaire fourni avec le package d'installation de PuTTY.

Lancez PuTTYgen depuis le menu Démarrer.

Assurez-vous que le RSA type de clé est sélectionné et cliquez sur Generate.

Pendant le processus de génération de la clé, déplacez la souris plusieurs fois sur la fenêtre de l'application pour créer des valeurs aléatoires.

Une fois la création de la clé terminée, la clé publique sera affichée dans PuTTYgen et la clé privée sera stockée dans la mémoire de l'application. Pour enregistrer ces clés, cliquez sur Save public key et Save private key. Spécifiez le répertoire sur votre PC pour stocker les fichiers de clés.

Lors de l'enregistrement de la clé privée, si le champ Key passphrase n'est pas rempli, il vous sera demandé « Êtes-vous sûr de vouloir enregistrer cette clé sans phrase de passe pour la protéger ? ». Cliquez sur Oui ou revenez à la fenêtre précédente pour spécifier la phrase de passe.

Maintenant, la clé publique doit être copiée sur votre serveur dans le authorized_keys fichier. Il se trouve dans le répertoire de l'utilisateur au nom duquel la connexion distante sera effectuée. Supposons que le nom d'utilisateur soit navixy, et dans ce cas l'emplacement du fichier sera /home/navixy/.ssh/authorized_keys.

Utilisez n'importe quel client de transfert de fichiers pour travailler avec les fichiers sur un serveur Linux distant. Ici, nous expliquerons le processus en utilisant WinSCP comme client le plus populaire.

Ouvrez le authorized_keys fichier via WinSCP pour l'éditer.

Copiez la valeur de la clé publique depuis la fenêtre PuTTYgen ou depuis le fichier précédemment enregistré. La clé doit commencer par ssh-rsa. Si une clé est déjà enregistrée dans le authorized_keys fichier, ajoutez la nouvelle clé après celle-ci, en commençant par une nouvelle ligne.

Enregistrez le fichier.

Vous pouvez maintenant vous connecter à votre serveur via PuTTY en utilisant le fichier de clé privée. Vous devez indiquer le chemin vers celui-ci sur votre PC. Pour ce faire, sélectionnez le chemin requis dans Connection - SSH - Auth - Credentials section (nouvelle version de PuTTY) ou Connection - SSH - Auth (ancienne version), dans le champ Private key for authentication .

Indiquez le nom d'utilisateur et l'adresse du serveur (par ex. [email protected]) dans l'onglet Session et connectez-vous à votre serveur. Si tout est correctement effectué, la connexion sera établie sans nécessité de saisir un mot de passe.

Clés SSH dans les solutions cloud

Lorsque vous déployez une machine virtuelle sur des services cloud tels que AWS, MS Azure et similaires, vous pouvez générer une clé SSH au moment de la création de la machine, ou ajouter une clé existante si elle a déjà été créée auparavant. Lorsque vous faites cela, le service cloud insérera automatiquement la clé publique dans les authorzed_keys de l'utilisateur du serveur. Tout ce que vous devez faire une fois le serveur déployé est d'établir une connexion SSH en utilisant la clé privée.

Bien que les plateformes cloud permettent de créer des clés SSH, elles ne stockent pas la partie privée de leur côté. Une fois téléchargée, la clé privée doit être conservée en lieu sûr, car en cas de perte l'accès au serveur sera impossible.

Désactivation de l'authentification par mot de passe

Une fois que vous avez configuré avec succès l'authentification par clé, vous n'avez pas besoin de conserver l'authentification par mot de passe. Pour des raisons de sécurité, vous pouvez la désactiver.

Connectez-vous au serveur via SSH et ouvrez le fichier sshd_config pour l'éditer, par ex. avec l'éditeur Vi :

vi /etc/ssh/sshd_config

Trouvez le paramètre PasswordAuthentication dans le fichier et réglez-le sur no:

PasswordAuthentication no

Enregistrez le fichier. Redémarrez le service sshd :

systemctl restart sshd

Vous pouvez maintenant établir la connexion distante à votre serveur via SSH uniquement en utilisant la clé SSH précédemment ajoutée. L'authentification par mot de passe est désactivée.

Mis à jour

Ce contenu vous a-t-il été utile ?