Skip to content

Se connecter au serveur SSH (distant) à partir du client SSH (local) par clé publique

Ce que l'on va faire ici

Nous allons voir ici comment se connecter au serveur SSH (distant) à partir du poste client SSH (local) automatiquement grâce à l'installation d'une clé publique.

Info

Une fois faite, cette procédure n'est pas à répéter pour un client donné.

Dans quel cas ?

Lorsque l'on veut éviter d'avoir à saisir son mot de passe à chaque connexion.

Lorsque l'on souhaite sécuriser l'accès par SSH à partir d'un poste donné. Ceci évite les connexions par d'autres postes, surtout si on bloque l'accès par mot de passe.

La procédure

Génération d'une paire de clé publique / privée

On commence par générer une paire de clé publique / privée sur le poste client. ATTENTION, CECI N'EST A FAIRE QUE SI VOUS N'AVEZ PAS DEJA DE PAIRE DEJA CREEE ! Sinon, vous risquez de désactiver des services qui utilise votre paire de clé actuelle. Soyez conscient de ce que vous faîtes dans ce cas.

ssh-keygen -t dsa

Envoi de la clé sur le poste serveur SSH

Ensuite, on envoie la clé publique sur le poste serveur SSH avec la commande :

ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipserveur

où :

  • -i chemin : indique la clé à utiliser. Ici, clé par défaut générée précédemment
  • user@ipserveur : utilisateur et adresse ip du serveur SSH

Saisir le mot de passe quand on vous le demande. Une fois fait, on peut rebooter et la connexion se fera automatiquement au prochaine connexion ssh.

+/- empêcher connexion par mot de passe sur le serveur SSH.

C'est une étape de sécurisation maximale, qui n'est pas forcément souhaitable, mais possible. Sur le serveur SSH, on éditera le fichier suivant :

sudo nano /etc/ssh/sshd_config

Ensuite, chercher les options PasswordAuthentication et PubkeyAuthentication que l'on mettra respectivement à No et Yes. Enregistrer le fichier.

Une fois fait, il ne sera pas possible de se connecter par mot de passe par SSH. La connexion ne sera possible que depuis le poste qui a la clé publique enregistrée.

Voir cette page assez complète sur le sujet : https://www.malekal.com/securiser-serveur-ssh/

Pour relancer :

sudo /etc/init.d/ssh restart