Authentification SSH par clés

J’évoquais hier la nécessité de changer le port de votre serveur SSH, qui, en standard, écoute sur le Tcp/22. Et plutôt que de vous compliquer la vie à configurer très inutilement Fail2ban, vous seriez bien avisé à générer un jeu de clés privé et publique pour l’accès via SSH à votre serveur Linux en désactivant au passage la possibilité de vous authentifier par mot de passe !!! L’un ne va pas sans l’autre.

Générer les clés avec Putty

Sous Windows, vous disposez, avec PuTTY (préférez l’installeur) d’un client SSH de 1ère qualité que vous pourrez compléter à l’occasion avec WinSCP pour la copie de fichiers de machine à machine via les protocoles applicatifs SCP ou SFTP. Le logiciel qui vous permettra de générer le jeu est puttygen.exe (PuTTY key generator de son petit nom).

Cliquez sur le bouton Generate, en bas à droite de la boîte de dialogue.

Lancement de puttygen (PuTTY key generator)

Vous devez alors bouger la souris au niveau de la surface indiquée afin de générer votre jeu de clefs.

Bougez votre souris sous puttygen pour générer votre jeu de clés.

Pour la clé privée (fichier ppk), sauvegardez-la précieusement en local sur votre poste de travail. Quant à la clé publique, faites un copier/coller du texte à partir de la zone Public key for pasting into OpenSSH authorized_keys file dans un fichier texte que vous nommerez authorized_keys.

puttygen-putty-key-generator-generate-public-private-keys

Transfert du fichier authorized_keys via WinSCP

Une fois généré comme indiqué ci-dessus, le fichier authorized_keys doit être transféré sur votre serveur via SCP ou SFTP dans le dossier /root/.ssh. Vous pouvez utiliser des logiciels comme FileZilla. Pour ma part, j’utilise WinSCP.

Copie du fichier authorized_keys via WinSCP

N’oubliez pas ensuite de restreindre les droits d’accès à ce répertoire caché. Faites un clic droit sur le répertoire /root/.ssh et choisissez dans le menu contextuel Propriétés.

La gestion des droits dans WinSCP sur le dossier /root/.ssh

N’oubliez pas de cocher les cases Ajouter X au répertoire et Appliquer récursivement.

winscp-droits-r-x-root-ssh

Interdire l’authentification par mot de passe au niveau du serveur OpenSSH

Il faut maintenant éditer le fichier /etc/ssh/sshd_config et passer la directive PasswordAuthentication à no ! Rechargez le service SSH en exécutant, sous Fedora, systemctl reload sshd ou, sous CentOS/Red Hat, service sshd reload.

Utilisation de la clé privée dans PuTTY

Entrez le chemin de la clé ppk générée précédemment avec puttygen dans Connection -> SSH -> Auth -> Private key file for authentification.

putty-connection-ssh-auth-private-key

Utilisation de la clé privée dans WinSCP

Dans WinSCP, cliquez sur le bouton Editer après avoir sélectionné votre session. Indiquez le chemin de la clé dans Fichier de clé privée.

Indiquez le chemin de la clé privée sur WinSCP

Sécurité  / Authentification SSH Centos Clefs SSH Clés SSH Fail2ban Fedora Formateur Centos Formateur Fedora Formateur OpenSSH Formateur Red Hat Formateur Sécurité informatique OpenSsh PuTTY Red Hat Sécurité informatique SSH WinSCP 

Commentaires

Vaut mieux pas perdre sa clef !
Mais il est clair que c’est beaucoup mieux que simplement mettre un fail2ban …
Par contre je préconise tout de même l’installation de fail2ban on a toujours un ou deux port ouvert avec un service derrière qui mérite d’être surveillé par fail2ban :)

Mais pourquoi, au juste, voulez-vous perdre cette clé ?

Merci pour ce tuto très bien détaillé, en français en plus, c’est rare.
J’ajouterai une précision, c’est que pour se connecter avec WinSCP, j’avais une autre version et il faut aller dans « Avancé… », puis « Authentification » (dans le menu de gauche)et sous « Fichier de clé privée » on y indique le chemin de la clé privée (.ppk).

Laisser un commentaire

(requis)

(requis)