SSH, pour se connecter en ligne de commande à un ordinateur distant
Cet article est le premier d'une série de quatre :
- SSH, pour se connecter en ligne de commande à un ordinateur distant
- SSH, se connecter sans mot de passe à l'aide de la cryptographie
- Reverse SSH, pour se connecter à un ordinateur distant protégé par un pare-feu
- SSH, des tunnels pour tous les services
En administration système, il est très courant de devoir prendre le contrôle à distance d'un autre ordinateur — souvent, il s'agit d'un serveur. Pour cela, on utilise SSH qui permet de se connecter en ligne de commande de manière sécurisée. Un client SSH doit être installé sur la machine qui souhaite se connecter à l'ordinateur distant, sur lequel doit être installé un serveur SSH. Bien souvent, il n'est pas nécessaire d'installer de client SSH ; les distributions GNU/Linux les plus répandues en sont dotées par défaut.
OpenSSH est l'implémentation SSH la plus répandue. Cet article décrit l'installation de openssh-server sur une distribution Debian GNU/Linux, ainsi que quelques cas d'usages simples.
Informations techniques
Nom du programme : OpenSSH
Version utilisée : 7.4
Licence : BSD
Auteur : OpenBSD
Site web du projet : https://www.openbsd.org
Site web du programme : https://www.openssh.com
Distribution utilisée : Debian GNU/Linux 9.5 « Stretch »
SSH (article Wikipédia) : https://fr.wikipedia.org/wiki/Secure_Shell
OpenSSH (article Wikipédia) : https://fr.wikipedia.org/wiki/OpenSSH
Dans un premier temps, nous allons considérer que l'ordinateur client et l'ordinateur distant auquel on souhaite se connecter sont sur le même réseau local. L'ordinateur client depuis lequel on souhaite se connecter à distance se nomme CLIENT. USER_B est l'utilisateur standard de l'ordinateur auquel on souhaite se connecter à distance, nommé SERVEUR_B. Tous les ordinateurs utilisés sont propulsés par une distribution Debian GNU/Linux.
La première étape consiste à installer un serveur SSH sur l'ordinateur SERVEUR_B.
Installation du serveur OpenSSH sur SERVEUR_B
Se connecter en tant que super-utilisateur :
su -
Installer le serveur OpenSSH :
apt install openssh-server
Se déconnecter :
exit
Se connecter à SERVEUR_B depuis CLIENT
Depuis l'ordinateur client, on peut désormais se connecter au serveur :
ssh USER_B@IP_SERVEUR_B
Où IP_SERVEUR_B est ici le nom de domaine de l'ordinateur SERVEUR_B, ou bien son adresse IP locale. Après avoir tapé le mot de passe de l'utilisateur USER_B qui est demandé, on est bien connecté au serveur.
Se connecter à un serveur véritablement distant
Si le serveur est situé en dehors du réseau local, cela peut se compliquer. Si, par des règles de routage ou quelque autre raison, le serveur est directement accessible par un nom de domaine ou une adresse IP publique, la commande pour s'y connecter est identique.
Par défaut, le port de connexion SSH est le 22. Si, par des règles de routage ou un changement de configuration du serveur, le port de connexion s'avère différent, il faut l'indiquer dans la ligne de commande :
ssh -p PORT USER_B@IP_SERVEUR_B
Où PORT est le numéro du port à utiliser.
Sauter d'un serveur à l'autre
Il est parfois difficile de traverser certains pare-feux qui n'ont pas été configurés pour permettre l'accès à tous les serveurs souhaités. Il est néanmoins possible de se connecter de proche en proche. Imaginons que CLIENT souhaite se connecter à SERVEUR_B, mais que ce dernier ne lui est pas directement accessible. En revanche, SERVEUR_A peut parfaitement se connecter à SERVEUR_B. Si CLIENT peut se connecter à SERVEUR_A, il peut ensuite se connecter à SERVEUR_B depuis SERVEUR_A.
Depuis CLIENT :
ssh USER_A@IP_SERVEUR_A
Une fois connecté à SERVEUR_A :
ssh USER_B@IP_SERVEUR_B
Cette méthode est applicable quel que soit le nombre de serveurs intermédiaires. Néanmoins, plutôt que de répéter une même commande à chaque fois, il est possible de se connecter à SERVEUR_B depuis CLIENT — en passant par SERVEUR_A — en une seule fois :
ssh -J USER_A@IP_SERVEUR_A USER_B@IP_SERVEUR_B
Ces premiers cas d'usages sont très simples et ne devraient pas poser de problème. Nous verrons plus tard comment traiter des cas plus complexes, et comment remplacer l'authentification par mot de passe par une authentification cryptographique.
Article sous licence Creative Commons BY-SA 3.0 France.