J’ai voulu franchir une étape supplémentaire pour sécuriser l’accès de mon serveur en activant l’authentification par clef publique et clef privée.
Le principe de la cryptographie asymétrique est le suivant: la clef publique sert à encoder le message et la clef privée, protégée par un mot de passe, sert à décoder le message. De plus, la clef privée ne peut pas être déduite en partant de la clef publique.
Cet échange crypté permet d’établir la liaison entre client et serveur. Le reste de la communication utilise un mode symétrique moins gourmand en ressources CPU.
La sécurité est donc bien meilleure qu’avec un simple mot de passe puisqu’il est nécessaire d’être en possession de la clef privée pour se connecter au serveur.
Pour générer mon trousseau de clef publique et privée, j’ai utilisé par simplicité un PC sous Uuntu. J’aurais pu utiliser une autre distribution Linux. Le protocole SSH étant natif sous Linux, la génération de clef y est plus simple que sous Windows.
ssh-keygen -t dsa permet de générer les clefs en protégeant la clef privée par un mot de passe. Par défaut elles sont sauvegardées dans le dossier caché .ssh avec les noms suivants:
id_dsa correspond à la clef privée et id_dsa.pub à la clef publique.
ssh-copy-id -i ~/.ssh/id_dsa.pub <username>@<ipaddress> permet de copier la clef publique sur le serveur distant en adaptant les permissions des répertoires distants.
Il s’agit maintenant de tester la connexion ! Un ssh user@ipadresse devrait vous connecter sur votre serveur.
Vérifiez avec ifconfig que votre adresse ip a bien changé.
Il reste maintenant trois étapes:
- désactiver l’authentification par mot de passe sur le serveur
- transformer la clef privée en clef ppk, le format utilisé par putty, pour permettre une utilisation sous windows
- automatiser la connexion avec Pageant pour se connecter en deux clics.
Pour désactiver la connexion par mot de passe, il suffit d’éditer le fichier /etc/sshd_config pour modifier la ligne suivante:
PasswordAuthentication no
Pour utiliser la clef privée sous Windows avec Putty, il est nécessaire de l’importer dans Puttygen pour ensuite la sauvegarder avec l’extension .ppk utilisé par Putty.
Cerise sur le gateau, Pageant permet de gérer votre authentification sur votre bureau windows. Saississez une fois votre mot de passe de la clef privé et connectez vous plusieurs fois à votre serveur en deux clics sans ressaisir votre mot de passe.
J’utilise personnellement un raccourci dans la barre de lancement rapide de Windows qui, d’un seul clic, appelle Pageant et y charge ma clef privée pour ensuite appeler Putty.
Comme j’ai enregistré dans Putty mon username, dans la zone Auto-login username dans Connexion / data, il ne me reste qu’à cliquer sur le nom de ma session pour être connecté à mon serveur distant Linux.
