Accès SSH + échange de clefs

Dans une connexion SSH (Secure SHell), il y a un serveur SSH (la machine sur laquelle on se connecte) et un client SSH (la machine depuis laquelle on se connecte). Le fichier de configuration du serveur SSH est le fichier sshd_config dans /etc/ssh. Le fichier de configuration du client SSH est le fichier ssh_config qui est aussi dans /etc/ssh.

Les clefs sont stockées dans le répertoire /home/pi/.ssh, la clef privée est dans le fichier id_rsa et la clef publique dans id_rsa.pub. Le fichier authorized_keys contient les clefs publiques des machines autorisées à se connecter sur la machine par échange de clef.

Après toute manipulation sur l’environnement SSH, il faut le relancer avec la commande sudo service ssh reload pour prendre en compte les modifications.

Pour créer une paire de clefs (publique/privée) il faut lancer la commande : ssh-keygen -t rsa

on obtient cette réponse, en répondant simplement « Enter » aux 3 questions posées :
Ensuite, il faut copier la clef publique sur le serveur sur lequel on souhaite se connecter avec la commande :
ssh-copy-id -p 39278 -i id_rsa.pub pi@Intermediaire
-p 39278 indique le port à utiliser pour le protocole SSH (si l’on n’utilise pas le port 22)
et pi@Intermediaire indique l’utilisateur et la machine sur laquelle la clef publique doit être installée.
En cas d’erreur et en fonction de l’erreur, il peut être utile de rajouter -f pour forcer la copie de la clef.
Voilà la réponse que l’on obtient si tout est OK (il faut répondre yes puis entrer le mot de passe de l’utilisateur pi) :
Paramètres du fichier sshd_config pour une connexion avec mot de passe :
Paramètres du fichier ssh_config pour une connexion avec mot de passe :
Modifications à apporter sur le fichier sshd_config pour une connexion avec clefs :
 
 

Pour créer un tunnel ssh, il faut ajouter le fichier ci-dessous dans /etc/systemd/system/ :

et ajouter ce service au démarrage du système : sudo systemctl --now enable autossh.service

Pour un tunnel ssh utilisé pour un flux https, il faut ajouter le fichier ci-dessous dans /etc/systemd/system/ :

et ajouter ce service au démarrage du système : sudo systemctl --now enable autossh_https.service

Pour lancer une connexion ssh vers une machine distante : ssh user@dnsdistant.com -p 3333

-p 3333 indique le port de la machine distante

Infos sur les connexions SSH pour des explications plus détaillées (merci à Cyprien Pouzenc 🙂 )

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *