Logo de kxs.frFiches pour l'informatique

Se connecter en ssh avec une clé publique

Introduction

Cela devient vite fastidieux de saisir son mot de passe à chaque connection ssh. Pour éviter cela, il est possible d'utiliser une clé publique pour se connecter en ssh.

Générer les clés

Nous devons commencer par générer une clé publique et une clé privée sur notre ordinateur local. J'expliquerai la procédure sous Linux mais cela doit pouvoir se faire sous Windows.

Sur votre ordinateur saisissez la commande :

ssh-keygen -t rsa -b 4096

-t rsa permet de choisir la méthode de chiffrement RSA (la plus utilisée actuellement). -b 4096 spécifie la taille de la clé (4096 est un minimum actuellement, vous pouvez aller jusqu’à 8192).

Generating public/private rsa key pair.
Enter file in which to save the key (/home/login/.ssh/id_rsa):

Appuyez sur entrée afin de garder l’emplacement par défaut.

Enter passphrase (empty for no passphrase):

Entrez ici une passphrase de façon à consolider votre clé. Ainsi même une personne en possession de votre clé privée ne pourra pas se connecter au serveur.

Enter same passphrase again:

Entrez à nouveau votre passphrase.

Il s’affiche alors la confirmation de la création de vos clés :

Your identification has been saved in /home/login/.ssh/id_rsa.
Your public key has been saved in /home/login/.ssh/id_rsa.pub.
The key fingerprint is:
9f:d5:6f:2b:d7:5b:f8:ce:83:c5:31:4c:97:1a:2a:57 login@monordi
The key's randomart image is:
+--[ RSA 4096]----+
|                .|
|             E o.|
|            o = .|
|         . o o + |
|        S o . o o|
|         . o   = |
|          o   + =|
|             o *+|
|              o+*|
+-----------------+

Vous avez bien généré vos clés. Il faut maintenant envoyer la clé publique sur le serveur.

Envoyer la clé sur le serveur

Toujours en local, on envoie la clé publique sur le serveur :

ssh-copy-id -p 41635 -i ~/.ssh/id_rsa.pub kevin@ip_serveur

(attention l'option -p 41635 correspond au port ssh choisi pour sécuriser les connexions)

Rentrez votre mot de passe pour la dernière fois.

Maintenant on vous demandera votre passphrase pour vous connecter à votre serveur. Pour éviter de la saisir à chaque fois il suffit de cocher la case pour que cela soit automatique à l'ouverture de session.

Créer un alias dans Bash

Si vous êtes sous Linux, il est possible de créer un alias dans Bash pour ne pas saisir à chaque fois la commande ssh complète. Pour cela il faut éditer en local votre fichier ~/.bashrc :

nano ~/.bashrc

Et ajouter à la fin l'alias suivant :

alias ssh-domaine='ssh -p 41635 kevin@ip_serveur'

À vous de remplacer ssh-domaine par la commande qui vous plaira. Sauvegardez (Ctrl + s) et quittez (Ctrl + x). Puis, pour que les changements soient pris en compte :

source ~/.bashrc

Maintenant, vous devez pouvoir vous connecter à votre serveur uniquement en saisissant la commande :

ssh-domaine