Qu'est-ce que SSH et comment l'utilise-t-on ? Les bases de shell sécurisé que vous devez connaître.
Besoin de vous connecter à distance à une machine Linux ? Vous avez besoin de SSH. Voici tout ce qu'il faut savoir sur cette commande Linux pratique.
Si vous devez un jour effectuer une administration à distance, à un moment donné, vous allez devoir vous connecter à un serveur Linux et vous mettre au travail. Pour ce faire, vous aurez besoin d'utiliser SSH (alias Secure Shell). Pour ceux qui n'ont jamais été exposés à un tel outil, vous allez être agréablement surpris car il rend non seulement la connexion à des systèmes distants facile, mais il est aussi très sécurisé.
Qu'est-ce que SSH ?
SSH est un moyen sécurisé de se connecter à une machine distante. Une fois connecté, vous pouvez exécuter n'importe quelle commande dont vous avez besoin pour travailler avec le serveur. Avant de penser que l'utilisation de SSH est difficile, ne vous inquiétez pas. Utiliser SSH n'est pas seulement assez facile, mais c'est aussi vraiment puissant.
Comment utiliser SSH pour se connecter à un serveur distant
Ce dont vous aurez besoin : Je souhaite vous guider à travers les premières étapes de l'utilisation de SSH. Je vais faire une démonstration sur Pop!_OS Linux, mais ces informations fonctionneront sur n'importe quelle distribution de Linux qui prend en charge SSH (ce qui est la plupart d'entre elles). Les seules choses dont vous aurez besoin pour suivre ce tutoriel sont deux instances de Linux en cours d'exécution. C'est tout. Mettons-nous au travail avec SSH.
1. Connectez-vous à une machine distante
L'utilisation de SSH permet de vous connecter d'une machine locale à une machine distante. Vous aurez besoin de comptes d'utilisateur sur les deux machines. Ces comptes n'ont pas à être identiques sur chaque machine (je vais expliquer cela dans un instant), mais vous devez avoir des identifiants de connexion pour les deux.
Vous aurez également besoin de l'adresse IP (ou du domaine) du serveur auquel vous souhaitez vous connecter. Disons, pour l'exemple, que notre serveur distant a l'adresse IP 192.168.1.11 et que notre compte utilisateur est le même sur les deux machines. Connectez-vous à votre ordinateur de bureau, ouvrez une fenêtre de terminal et connectez-vous à la machine distante avec la commande :
ssh 192.168.1.11Vous serez invité à entrer votre nom d'utilisateur sur la machine distante. Une fois que vous avez réussi à vous authentifier avec le mot de passe, vous serez connecté à la machine distante, où vous pourrez commencer à travailler.
2. Connectez-vous via un nom de domaine
Disons que la machine distante est associée au domaine www.example.com. Vous pourriez vous y connecter avec la commande :
ssh www.example.com3. Connectez-vous en utilisant un nom d'utilisateur différent
Maintenant, que faire si votre nom d'utilisateur sur la machine distante n'est pas le même que celui sur le bureau ? Si votre nom d'utilisateur sur la machine distante est olivia, vous pourriez vous connecter avec la commande :
ssh olivia@192.168.1.11Vous serez invité à entrer le mot de passe d'Olivia (pas celui de l'utilisateur local).
4. Connectez-vous via un port non standard
Normalement, SSH utilise le port 22. Certains administrateurs peuvent changer ce port (pour des raisons de sécurité). Si l'administrateur du serveur a configuré SSH pour écouter sur le port 2022, vous ne pouvez pas simplement taper la commande SSH standard pour vous connecter. Au lieu de cela, vous devez ajouter l'option -p (pour port) comme ceci :
ssh olivia@192.168.1.11 -p 2022Configuration du site SSH
Se souvenir de toutes ces adresses IP et noms d'utilisateur peut être un vrai casse-tête pour certains. Heureusement, SSH permet de créer un fichier de configuration qui contient toutes ces informations. Par exemple, disons que vous avez la liste suivante de serveurs auxquels vous vous connectez :
- serveur web - 192.168.1.11
- serveur de messagerie - 192.168.1.12
- serveur de base de données - 192.168.1.13
Configurons SSH de sorte que vous n'ayez qu'à vous connecter avec les commandes :
- ssh web1
- ssh email1
- ssh db1
1. Créez un fichier de configuration
Nous supposerons également que l'utilisateur sur web1 est olivia, l'utilisateur sur email1 est nathan, et l'utilisateur sur db1 est le même que l'utilisateur sur la machine locale. Pour configurer cela, nous devons créer un fichier de configuration dans le répertoire ~/.ssh. Pour cela, retournez à la fenêtre de terminal sur votre machine locale et émettez la commande :
nano /home/USER/.ssh/configOù USER est votre nom d'utilisateur Linux.
2. Configurez le fichier
Dans ce fichier, ajoutez les lignes suivantes :
Host web1
Hostname 192.168.1.11
User olivia
Host email1
Hostname 192.168.1.12
User nathan
Host db1
Hostname 192.168.1.13Enregistrez et fermez le fichier. Vous devriez maintenant pouvoir vous connecter à ces différents serveurs avec les commandes plus courtes (c'est-à-dire ssh web1, ssh email1 et ssh db1). Il est important de se rappeler, cependant, que pour web1, on vous demandera le mot de passe d'Olivia, email1 demandera le mot de passe de Nathan, et db1 demandera le même utilisateur que celui local.
Exécution de commandes sur un machine distante avec SSH
C'est une petite astuce pratique. Disons que vous ne voulez pas nécessairement vous connecter à une machine distante, mais vous devez exécuter une commande. Par exemple, vous voulez lister le contenu du répertoire personnel de l'utilisateur distant. Pour cela, vous pourriez émettre la commande :
ssh olivia@192.168.1.11 ls /home/oliviaPuisque nous avons configuré notre fichier de configuration, nous pouvons réduire cette commande à :
ssh web1 ls /home/oliviaNous pouvons retirer un peu plus de cette commande car Linux a un raccourci pour le répertoire personnel d'un utilisateur (car /home/olivia et ~/ sont la même chose). Pour cela, notre commande devient :
ssh web1 ls ~/Et cela, mes chers amis, est les bases de l'utilisation de SSH pour se connecter à une machine Linux distante. Si vous devez un jour faire de l'administration à distance d'une machine Linux, c'est ce que vous devrez savoir. La prochaine fois, je vous présenterai l'authentification par clé SSH, pour des connexions à distance encore plus sécurisées.
