Linux | Faire une connexion SSH (Secure Shell) avec clé privée & publique comme authentification


Niveau d'utilisateur 4
Badge +3
Coucou tout le monde !

Aujourd'hui je vous propose un tutoriel qui vous permettra d'utiliser une connexion à distance SSH avec un système de clé d'authentification (private & public)

Pour commencer, il va falloir que vous installiez le service openssh (côté server). Donc vous ouvrez un terminal et rentrez ceci :

code:
apt-get install openssh-server



Après avoir installé le paquet, il faudra générer les clés publique & privée. Pour pouvoir la générer, il est conseiller de se connecter avec l'utilisateur ou root si vous désirez générer des clés pour l'utilisateur root.

code:
nano /etc/ssh/sshd_config



Dans ce fichier, nous allons éditez un paramètre (pour l'instant) qui est le port. Pourquoi changer le port ? En général, les attaques SSH s'effectuent par le port 22 qui est le port par défaut donc conseiller de le changer ! Pour le changer, il faut modifier cette ligne :



Il suffit de la dé-commenter en retirant le dièse et y choisir un port non commun (par ex pour moi le port 2222)



Maintenant, retournons à nos clés ! Comment ? C'est assez simple, il suffit d'utiliser cette commande pour générer nos clés (ATTENTION de bien se connecter d'abord avec l'utilisateur voulu)

code:
ssh-keygen




(/root/.ssh/id_rsa) est l'emplacement par défaut où se situera la clé. Vous pouvez changer le répertoire si vous le désirez.

Il faudra ensuite entrez une phrasepass. C'est quoi ? Une phrasepass est comme un mot de passe que vous rentrez (généralement différent du profil sur lequel on a mis la clé) et permet de sécuriser la clé de chiffrement privée au cas où vous vous la ferez voler. (De manière physique en général). Quand celle-ci sera OK, il faudra déplacer la clé id_rsa dans le dossier racine (ex : mv /root/.ssh/id_rsa /). Ici root car je suis connecté dessus.

Après, il suffira d'aller sur un Windows et d'utiliser WinSCP pour transférer la clé RSA sur le Windows.

Il faut d'abord se connecter sur sa machine (en local) comme ceci :



Une fois connecté, il vous faudra déplacer le fichier id_rsa sur le bureau du Windows comme ceci :



Quand il est transféré, il faudra ABSOLUMENT le supprimé de la machine Linux ! Bien sûr c'est logique 🙂

Quand ce sera terminé, il faudra rendre la clé privée utilisable par PUTTY. Comment faire ? Il suffit de télécharger PUTTYgen et je vous montre ça !

Vous appuyez sur Load



Vous prenez le fichier RSA et vous entrez ensuite votre phrasepass ! Il faudra alors la sauver en private key



Une fois sauvé, vous pouvez fermer PUTTYgen et supprimer le premier fichier RSA sur votre bureau Windows.

Retournons dans notre Linux avec PUTTY, car nous devons retourner modifier quelques lignes dans le fichier sshd_config avec nano ! Alors voici les lignes à modifier :

En général si vous avez régler vos clés sur un autre utilisateur que root alors il est recommandé de désactiver cette ligne



Mais également la connexion par mot de passe : (pour tout utilisateur)



Quand ceci est fait, il faudra renommer le fichier rsa_public en authorized_keys (Voici un exemple) :



Quand tout ça est terminé, vous pouvez redémarrer le service ssh avec cette commande :

code:
service ssh restart



Vous pouvez retourner ensuite dans PUTTY :

Pour pouvoir se connecter, vous devrez faire comme ceci et prendre le fichier générer avec PUTTYgen



Ensuite vous pouvez relancer la connexion sur le serveur SSH et donc essayer de vous connecter :)

Vous pourrez voir que sans cette clé, vous ne serez en AUCUN CAS vous connecter ! Vous devez impérativement avoir cette clé et la garder privée !

1 commentaire

Niveau d'utilisateur 7
Badge +8
Bonjour Donovan,

Merci d’avoir pris le temps de faire ce tuto qui, j’en suis sur, servira à plusieurs de nos membres. Personnellement, je n’utilise plus Linux, mais cela à l’air très clair (j’ai presque tout compris). Et donc c’est qu’il est bien fait :)

Une bonne journée 🙂

Commenter