SSH est un protocole réseau permettant de se connecter en toute sécurité à une machine distante et d’exécuter des commandes. Il est conçu et créé pour offrir la meilleure sécurité lors de l’accès à distance à un autre ordinateur. Chaque fois que des données sont envoyées par un ordinateur au réseau, ssh les chiffrera automatiquement.
Pour utiliser SSH, la machine de destination doit avoir une application serveur SSH installée car SSH est un modèle client-serveur. Un serveur SSH, par défaut, écoute sur le port TCP standard 22. Le client SSH est par défaut disponible sur toutes les distributions Linux.
Dans ce tutoriel, nous apprenons Commandes SSH dans Linux avec des exemples d’utilisation.
Conditions préalables
- Un client SSH
- Un serveur SSH
- Adresse IP ou nom du serveur distant
1. Comment SSH vers un serveur distant
Un serveur distant est connecté à l’aide d’une adresse IP ou du nom de l’hôte. Pour vous connecter en ssh à l’aide d’une adresse IP, utilisez la commande suivante :
ssh [ IP ADDRESS]
Pour vous connecter à ssh en utilisant le nom, utilisez la commande suivante :
ssh [ HOSTNAME ]
Pour example, pour se connecter à un hôte distant à l’aide de l’adresse IP 192.168.239.133, la commande serait la suivante.
$ ssh 192.168.239.133
Lorsque vous vous connectez pour la première fois à un hôte, un message apparaît vous demandant si vous souhaitez continuer à vous connecter. Tapez yes, puis entrez le mot de passe de votre hôte distant.
2. SSH avec nom d’utilisateur
SSH utilise l’utilisateur actuel du serveur distant lors de la tentative de connexion. Pour vous connecter à ssh avec le nom d’utilisateur, utilisez la syntaxe suivante.
ssh [USERNAME]@[HOSTNAME/IP ADDRESS]
Pour example, pour vous connecter à l’hôte distant avec l’adresse IP 192.168.239.134 ayant un nom d’utilisateur kali, utilisez la commande suivante.
$ ssh [email protected]

3. SSH avec un numéro de port différent
Le serveur SSH écoute le port TCP 22 par défaut mais si vous souhaitez le modifier, vous devez spécifier le port dans la commande.
Pour vous connecter à un hôte distant à l’aide d’un numéro de port différent, utilisez l’indicateur -p comme indiqué dans la syntaxe suivante.
ssh [ IP ADDRESS/HOSTNAME ] -p [ PORT NUMBER ]
Pour example, pour vous connecter à l’hôte distant avec une adresse IP de 192.168.239.134 à l’aide du numéro de port 223, utilisez la commande suivante.
$ ssh 192.168.239.134 -p 223

4. SSH sans mot de passe
En trois étapes simples, vous pouvez vous connecter à votre hôte distant en utilisant ssh sans mot de passe. Les trois étapes requises pour se connecter à un serveur distant sans saisir de mot de passe sont les suivantes.
Générer une clé SSH
Pour générer des clés SSH, ssh-keygen est utilisé qui crée les clés publiques et privées. Ces paires de clés sont utilisées pour s’authentifier entre les clients et les serveurs.
Pour créer une paire de clés, entrez la commande suivante sur la machine cliente.
$ ssh-keygen -t rsa

Enter l’emplacement et la paraphrase, ou appuyez sur Entrée pour utiliser les paramètres par défaut.
Copier la clé SSH publique
Vous devez copier la clé SSH publique sur un serveur distant pour utiliser la paire de clés. Pour copier la clé SSH publique sur le serveur distant, utilisez la syntaxe suivante sur la machine hôte.
ssh-copy-id [USERNAME]@[HOSTNAME/IP ADDRESS]
Pour copier la clé SSH à partir de l’adresse IP 192.168.239.134, utilisez la commande suivante.
$ ssh-copy-id [email protected]

Connectez-vous à distance sans mot de passe
Vous pouvez maintenant vous connecter au serveur distant sans mot de passe à l’aide de la commande suivante.
ssh [USERNAME]@[HOSTNAME/IP ADDRESS]
Pour example, pour vous connecter à l’hôte distant avec l’adresse IP 192.168.239.134 ayant un nom d’utilisateur kali, utilisez la commande suivante.
$ ssh [email protected]

5. Exécutez une commande sur le serveur distant à l’aide de SSH
La commande ssh peut être utilisée pour se connecter au serveur distant. Il peut également être utilisé pour exécuter des commandes sur le serveur distant.
La syntaxe de base pour exécuter des commandes sur ssh est la suivante.
ssh USER1@SERVER1 COMMAND1
ssh USER1@SERVER1 'COMMAND2'
ssh USER1@SERVER1 'COMMAND1 | COMMAND2'
ssh ADMIN@BOX1 "COMMAND1; COMMAND2; COMMAND3"
Pour obtenir la date et l’heure du serveur distant, utilisez la syntaxe suivante :
ssh USER1@SERVER1 date
Pour example, pour obtenir la date de l’utilisateur kali à partir du serveur d’adresse IP 192.168.239.134, utilisez la commande suivante.
$ ssh [email protected] date

Pour vérifier l’utilisation de l’espace disque du serveur distant, la syntaxe est la suivante.
ssh USER1@SERVER1 'df -H'
Pour example, pour obtenir l’utilisation de l’espace disque de l’utilisateur kali à partir du serveur d’adresse IP 192.168.239.134, utilisez la commande suivante.
$ ssh [email protected] 'df -H'

Pour vérifier les derniers journaux de redémarrage de l’utilisateur distant, utilisez la syntaxe suivante.
ssh USER1@SERVER1 "last reboot"
Pour example, pour obtenir les derniers journaux de redémarrage des utilisateurs de kali à partir du serveur d’adresse IP 192.168.239.134, utilisez la commande suivante.
$ ssh [email protected] "last reboot"

Options de ligne de commande SSH
Voyons quelques-unes des options disponibles avec la commande ssh.
ssh -C
Utilisez l’option -C avec ssh pour demander la compression de toutes les données reçues ou transférées depuis le serveur distant, comme illustré dans la syntaxe suivante.
ssh -C
[USERNAME]@[HOSTNAME/IP ADDRESS]
Par example,
$ ssh -C [email protected]
ssh -v
L’option -v est utilisée avec la commande ssh pour déboguer le client ssh. Voici la syntaxe :
$ ssh -v [USERNAME]@[HOSTNAME/IP ADDRESS]
Par example,
$ ssh -v [email protected]

ssh -b
L’option -b est utilisée pour lier une adresse IP à une connexion SSH. L’adresse IP sera utilisée comme adresse source de la connexion SSH. Ceci est utilisé lorsqu’un client a plus de deux adresses IP et que vous ne savez peut-être pas quelle adresse IP est utilisée pour créer une connexion au serveur SSH.
Pour example,
$ ssh -b 192.168.239.133 [email protected]
La commande liera l’adresse IP au serveur distant. Nous pouvons le vérifier en utilisant le netstat |grep ssh
commande pour vérifier la connexion.

ssh -F
L’option -F est utilisée avec la commande ssh pour spécifier une configuration par utilisateur. Le fichier de configuration par défaut est ~/.ssh/config.
Pour utiliser un fichier de configuration spécifique, utilisez l’option -F de la manière suivante.
$ ssh -F [File Location] [USERNAME]@[HOSTNAME/IP ADDRESS]
Par example,
$ ssh -F /etc/ssh/ssh_config.d [email protected]
ssh -L
L’option -L est utilisée pour la redirection de port local. La redirection de port local nous permet d’acheminer le trafic de notre hôte vers un port de destination via un proxy.
La syntaxe de base pour la redirection de port local est la suivante.
ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]
Pour example, exécutez la commande suivante pour vous connecter à l’hôte distant sur le port 3306 de l’utilisateur kali avec IP 192.168.239.134 à partir de l’hôte local 192.168.239.133 sur le port 3336.
$ ssh -L 3336:192.168.239.133:3306 [email protected]

ssh -R
L’option -R est utilisée avec la commande SSH pour activer la redirection de port distant. Cela signifie que vous pouvez transférer un port du serveur distant vers un port de votre machine locale, qui est ensuite transféré vers un port de la machine de destination.
La syntaxe de base pour la redirection de port distant est la suivante.
ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT
[USERNAME]@[HOSTNAME/IP ADDRESS]
Pour example,
$ ssh -R 3336:192.168.239.133:3000 [email protected]
La commande fera en sorte que ssh écoute le serveur ssh sur le port 3336 et tunnelise tout le trafic vers le port 3000.

ssh -C -D
L’option -D active la redirection de port dynamique. Le port SOCKS habituel est 1001, cependant, n’importe quel numéro de port peut être utilisé ; néanmoins, certains programmes ne fonctionneront que sur le port 1001.
La syntaxe de base pour le transfert dynamique est la suivante.
ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]
Pour example,
$ sudo ssh -C -D 1001 [email protected]
Le -D spécifie la redirection de port dynamique dans le port 1001 et -C active la compression.

ssh -X
L’option -X est utilisée avec ssh pour le transfert X11. Voici la syntaxe du transfert X11.
ssh -X [USERNAME]@[HOSTNAME/IP ADDRESS]
Utilisez la commande suivante pour activer le transfert X11 sur l’utilisateur kali avec l’adresse IP 192.168.239.134.
$ ssh -X 192.168.239.134
ssh -Y
L’option -Y est utilisée avec ssh pour le transfert Trusted X11. Cela signifie que le X11 distant aura un accès complet à l’affichage X11 d’origine.
ssh -Y [USERNAME]@[HOSTNAME/IP ADDRESS]
Utilisez la commande suivante pour activer le transfert Trusted X11 sur l’utilisateur kali avec l’adresse IP 192.168.239.134.
$ ssh -Y 192.168.239.134

ssh -o
L’option -o peut être utilisée avec d’autres options.
Pour example,
$ ssh -o "batchmode=yes" [email protected]
Si vous utilisez ssh -o “batchmode=yes”, la commande s’exécutera avec succès sur la machine distante si la connectivité sans mot de passe est activée, sinon elle renverra une erreur.

Certaines des options de ligne de commande les plus importantes sont présentées dans le tableau suivant.
Option | La description |
-UNE | Il permet de transférer la connexion de l’agent d’authentification. |
-une | Il désactive la connexion de l’agent d’authentification à transférer. |
-b | Il est utilisé pour lier les adresses sources. |
-C | Il est utilisé pour la compression de données. |
-c spéc_cipher | Il sélectionne la spécification de chiffrement pour chiffrer la session. |
-RÉ | Il est responsable de la redirection de port dynamique au niveau de l’application. |
-E fichier_journal | Il ajoute les journaux de débogage à log_file au lieu de l’erreur standard. |
-F fichier de configuration | Il spécifie un fichier de configuration par utilisateur. |
-g | Il permet aux hôtes distants de se connecter aux ports locaux transférés. |
-i fichier_identité | Il lit la clé privée pour l’authentification par clé publique. |
-j | Il spécifie une directive de configuration ProxyJump. |
-l login_name | Il spécifie l’utilisateur à connecter à la machine distante. |
-p port | Il est utilisé pour spécifier le port pour se connecter à l’hôte distant. |
-q | C’est le mode silencieux. |
-V | Mode verbeux. |
-X | Il permet le transfert X11 |
-O | Il permet le transfert Trusted X11 |
Conclusion
Dans ce didacticiel, nous avons appris à utiliser la commande ssh avec des exemples utiles. Merci d’avoir lu, s’il vous plaît fournir vos commentaires et suggestions dans la section commentaires ci-dessous.