Dans cet article nous allons voir comment s'authentifier dans un serveur linux avec une clé privée SSH.
L'authentification via une clé privée augmente la sécurité d'un serveur au niveau du processus de connexion. A la place d'un mot de passe uniquement, il est nécessaire de fournir les deux informations suivantes :
Nous allons générer la clé privée et la clé publique. La clé privée sera à garder en sécurité sur son poste. Cette dernière ne sera pas à fournir au serveur. Quand à la clé publique, elle peut être partagée et être connue de tous. Elle sera par conséquent stockée sur le serveur.
Génération de la paire de clé :
ssh-keygen -t rsa -b 4096 -C votre@email.com
Nous générons des clés RSA avec pour taille 4096 bits. Le mail est fourni afin de se repérer dans le cas ou plusieurs clés sont à générer.
Remarques :
Les clés sont générées par défaut dans le dossier ~/.ssh/<nom fichier>. Deux fichiers ont été créés par défaut :
Utiliser l'article suivant : https://phoenixnap.com/kb/generate-ssh-key-windows-10
Il est maintenant nécessaire de renseigner la clé publique dans le fichier ~/.ssh/authorized_keys. Il est utilisé lors de l'authentification afin de déterminer la conformité de la clé privée de l'utilisateur.
3.1 Utilisation de ssh-copy-id (linux)
Utiliser la commande suivante afin d'envoyer la clé publique au serveur :
ssh-copy-id -i <lien_id_pub> <username>@<ipaddress>
Si le port SSH n'est pas le port standard 22 :
ssh-copy-id -i <lien_id_pub> -p <num_port> <username>@<ipaddress>
Exemple :
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 12345 alex@123.456.789.123
Copier le contenu de votre clé publique dans le dossier ~/.ssh/authorized_keys du serveur.
Vous devriez pouvoir vous connecter à votre serveur linux sans problème via la commande suivante :
ssh -p <num_port> -i <chemin_cle_prive> <username>@<ipaddress>
Pour ne pas fournir le fichier de la clé privé lors de la connexion (si vous avez plusieurs clés privées), modifier ou créer le fichier ~/.ssh/config sur votre poste utilisateur et ajouter les lignes suivantes :
Host <nom_serveur>
HostName <ip_serveur>
User <nom_utilisateur>
Port <num_port>
IdentityFile <chemin_cle_prive>
Lors de la prochaine connexion, vous pourrez vous connecter via les deux commandes suivantes :
ssh -p <num_port> <username>@<ipaddress>
ssh <nom_serveur>
Nous avons vu comment s'authentifier dans un serveur linux avec une clé privée SSH. Il serait intéressant maintenant de voir comment ajouter une authentification double facteur lors de la connexion.
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos