Authentification de la clé publique SSH sur Linux

Authentification de la clé publique SSH sur Linux

Ce tutoriel explique comment utiliser l'authentification de la clé publique SSH au lieu de la méthode de connexion de mot de passe la plus utilisée.

Après avoir lu ce tutoriel, vous saurez comment configurer votre accès SSH à l'aide de l'authentification clé. Après les instructions pratiques, vous pouvez trouver des informations sur le processus d'authentification clé, les avantages et les inconvénients sur l'authentification du mot de passe.

Configuration de l'authentification des clés SSH sur Linux

Pour commencer, vous devez générer des clés publiques et privées. Les clés privées et publiques sont générées simultanément par le même appareil, puis partagées avec les appareils que vous souhaitez autoriser les connexions entre.

Dans cet exemple, nous générerons des clés d'authentification à partir d'un client utilisant la commande SSH-Keygen, puis nous enverrons la clé publique au serveur pour autoriser les connexions entre eux.

Pour générer les clés, vous devez vous connecter à mesure que l'utilisateur autorisé à se connecter. Dans ce tutoriel, l'utilisateur créé à la fois dans le serveur et le client est LinuxHint.

Après avoir exécuté la commande ssh-keygen, le processus vous demandera dans quel fichier vous souhaitez enregistrer la touche, appuyez sur Entrée pour laisser l'emplacement par défaut (~ /.ssh / id_rsa).

On vous demandera également une phrase secrète pour crypter votre clé. Ceci est recommandé mais la plupart des appareils authentifiés clés ne l'utilisent pas. Vous pouvez taper une phrase secrète et appuyer sur Entrée, ou vous pouvez simplement appuyer sur Entrée, en laissant le champ vide pour éviter de crypter votre touche.

Pour générer des clés publiques et privées, exécutez la commande ci-dessous.

Note: Dans l'exemple ci-dessous, vous pouvez voir dans mon cas que j'avais déjà une authentification clé, et le processus me demande si je veux écraser la clé précédente. Si vous n'aviez pas de clé précédente, vous pouvez l'ignorer.

$ ssh-keygen

Comme vous le pouvez, voir les clés ont été générées correctement.

Comme expliqué précédemment, après avoir généré vos clés à partir du client, vous devez envoyer la clé publique au serveur auquel vous souhaitez pouvoir vous connecter. Pour partager la clé publique avec le serveur, vous pouvez utiliser la commande SSH-Copy-ID suivie du nom d'utilisateur que vous souhaitez connecter et l'adresse IP du serveur comme indiqué ci-dessous.

$ ssh-copy-id Linuxhint @ 192.168.1.103

La clé a été correctement installée sur le serveur. Maintenant, vous pouvez vous connecter à l'aide de SSH suivi par le nom d'utilisateur et l'adresse IP du serveur comme indiqué ci-dessous.

$ ssh linuxhint @ 192.168.1.103

Dans mon cas, j'ai tapé une phrase secrète lors de la génération de clés. Ainsi, lorsque je essaie d'accéder à une clé, on m'a demandé de taper la phrase secrète. Si vous avez également tapé une phrase secrète lors de la génération de touches, remplissez le champ et appuyez sur déverrouiller pour vous connecter.

Comme vous pouvez le voir dans la capture d'écran suivante, la connexion a été établie avec succès.

Désactivation de l'authentification du mot de passe

Vous avez maintenant activé l'authentification de la clé publique SSH sur Linux, vous devez désactiver la méthode d'authentification du mot de passe. Pour y parvenir, vous devez modifier le fichier de configuration SSH / etc / ssh / sshd_config.

Vous pouvez utiliser la commande suivante pour modifier / etc / ssh / sshd_config à l'aide de Nano Text Editor.

$ sudo nano / etc / ssh / sshd_config

Recherchez la ligne contenant un mot de passe-authentification oui illustré dans la capture d'écran ci-dessous.

Modifier la ligne,

PasswordAuthentication Oui

Changez-le en:

PasswordAuthentication Non

Enregistrer et quitter le fichier. Si vous avez utilisé Nano pour modifier le fichier, vous pouvez appuyer sur CTRL + X pour quitter les modifications d'enregistrement.

Pour appliquer les modifications, vous devez redémarrer le service SSH. Pour le faire, exécutez la commande ci-dessous.

$ sudo systemctl redémarrer ssh

Votre connexion par mot de passe est désactivée et vous pouvez vous connecter à l'aide de l'authentification clé.

Désactivation de la connexion racine

La désactivation de la connexion racine est également un excellent moyen d'augmenter la sécurité de votre système. L'utilisateur racine est universel et vulnérable aux attaques de force brute. De cette façon, vous pouvez empêcher quiconque de forcer la racine ou de vous connecter à distance avec des privilèges.

Vous pouvez désactiver la connexion racine en modifiant le même fichier / etc / ssh / sshd_config que ci-dessous.

$ nano / etc / ssh / sshd_config

Trouvez la ligne qui contient Permatlogine Oui indiqué ci-dessous.

Modifiez la ligne suivante:

Permutrootlogin oui

Changez-le en:

Permutrootlogine no

Sortir des modifications de sauvegarde en appuyant sur Ctrl + x.

Redémarrez le service SSH:

$ sudo systemctl redémarrer ssh

Votre connexion racine est désactivée.

Mot de passe vs méthodes d'authentification clés

Comme vous pouvez le voir, le processus d'authentification clé est facile à mettre en œuvre. Lorsque vous vous connectez au serveur auquel vous souhaitez vous connecter, votre clé privée reste sûre dans votre système et n'est pas envoyée au serveur. Au lieu de cela, le serveur envoie sa clé publique au client où l'authentification a lieu.

Il y a des raisons pour lesquelles certains utilisateurs optent pour une authentification clé et d'autres pour la connexion du mot de passe.

Certains utilisateurs choisiront une méthode d'authentification des clés car elle génère automatiquement des clés plus fortes que les mots de passe de fabrication humaine. De plus, les clés privées ne sont pas livrées au serveur. Ils ne sont pas vulnérables aux attaques de l'homme au milieu. Lorsque vous utilisez l'authentification des clés, seuls les appareils avec la clé privée sont autorisés à se connecter, augmentant la sécurité.

D'un autre côté, certains utilisateurs choisiront la connexion du mot de passe car ils sont autorisés à se connecter à partir de n'importe quel appareil. Les informations d'identification du mot de passe sont également plus faciles à distribuer si vous avez de nombreux utilisateurs à administrer.

Conclusion

Comme vous pouvez le voir, l'augmentation de la sécurité de votre système en remplaçant la connexion du mot de passe par l'authentification clé est un processus très assez facile, y compris quelques commandes pour générer la clé et la partager. De plus, la désactivation de l'authentification du mot de passe nécessite uniquement de remplacer un oui par un non dans le fichier de configuration SSH et de redémarrer le service. D'autres méthodes pour augmenter votre sécurité SSH peuvent être apprises à Disable Root SSH et Linux à deux facteurs d'authentification.

J'espère que ce tutoriel expliquant comment utiliser l'authentification de la clé publique SSH sur Linux a été utile.