Vous avez surement dû entendre parler de SSH içi ou là sur les forums. Derrière ce sigle un peu barbare se cache un moyen de créer une voie de communication chiffrée entre 2 ordinateurs. Si le nom peut faire peur à première vue, plus encore pour quelque chose qui se fait essentiellemnt en console :D, sa mise en oeuvre se révèle en fait très simple.
SSH veut dire Secure Shell. C’est donc à l’origine un moyen d’ouvrir un terminal sur une machine distante d’une manière sécurisée. Mais SSH permet aussi de lancer des applications graphiques voir un bureau complet à distance, de servir de canal de transfert des fichiers sécurisé, de créer un tunnel chiffré pour faire transiter les informations d’un port d’une machine à une autre, et ainsi de créer des réseaux virtuels à distance entre machines (VPN).
La sécurisation de la communication se fait par chiffrement asymétrique, principe que l’on retrouve aussi dans GPG.
En guise d’introduction, nous allons voir comment, depuis une machine A ouvrir un terminal utilisateur se trouvant sur une machine B.
Premièrement, il faut installer le serveur SSH sur la machine B.
Sous Mandriva, il s’agit d’installer le paquet openssh-server.
La configuration du serveur se fait par le fichier de configuration texte /etc/ssh/sshd_config
Par défaut, tous les utilisateurs peuvent se connecter à distance, vérifiez donc que vous avez des mots de passe suffisamment résistants au cassage par force brute.
On peut limiter les utilisateurs pouvant se connecter en SSH sur la machine en insérant dans le fichier de configuration du serveur /etc/ssh/sshd_config
la ligne suivante : AllowUsers toto titi
Pour lancer SSH, vous pouvez le démarrer graphiquement depuis le gestionnaire de services Mandriva ou lancer en root # service sshd start
Si vous avez un firewall actif, veillez à ouvrir le port 22.
Retournons sur la machine A.
Imaginons que nous voulions ouvrir un terminal pour l’utilisateur toto déja existant sur la machine B.
Nous tapons sur lamachine A : $ ssh toto@ip_de_la_machine_B
Il vous sera demandé le mot de passe de l’utilisateur toto puis vous aurez l’invite [toto@machineB ~]$. C’est donc « comme si » vous vous étiez connecté localement sur la machine B en tant qu’utilisateur toto.
Taper $ exit ou Ctrl-D pour se déconnecter.
Au cas où ce ne serait pas clair, vous aurez remarqué que l’on utilise les utilisateurs présents sur la machine sur laquelle on veut se connecter (B) et non ceux de le machine qui se connecte (A).
Si vous êtes en IPv6, vous pouvez vous connectez à la machine B même si elle se trouve derrière un NAT (freebox en mode routeur par exemple) sans avoir à faire de redirection de ports.
On peut autrement utiliser un système de clés asymétriques que l’on se trimbale pour se connecter à la place du mot de passe… mais nous verrons ça plus tard. La sécurité d’SSH est un vaste domaine.
On ne le dira jamais assez, « exit » peut être remplacé par ctrl+D :)
Sympa ce raccourci. Merci :)