Commandes SSH sous Linux avec exemples d’utilisation

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]

  SSH avec nom d'utilisateur

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

  SSH avec le numéro de port 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

Générer une clé SSH

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]

Copier la clé SSH publique

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]

Connectez-vous à distance sans mot de passe

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

Date du serveur distant

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'

Utilisation de l'espace disque du serveur distant

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"

Derniers journaux de redémarrage de l'utilisateur distant

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]

Déboguer le client SSH

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.

Lier l'adresse IP

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]

Redirection de port local

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.

Redirection de port distant

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.

Redirection de port dynamique

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

Transfert de confiance

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.

ssh -o batchmode = oui

Certaines des options de ligne de commande les plus importantes sont présentées dans le tableau suivant.

OptionLa description
-UNEIl permet de transférer la connexion de l’agent d’authentification.
-uneIl désactive la connexion de l’agent d’authentification à transférer.
-bIl est utilisé pour lier les adresses sources.
-CIl est utilisé pour la compression de données.
-c spéc_cipherIl 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_journalIl ajoute les journaux de débogage à log_file au lieu de l’erreur standard.
-F fichier de configurationIl spécifie un fichier de configuration par utilisateur.
-gIl 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.
-jIl spécifie une directive de configuration ProxyJump.
-l login_nameIl spécifie l’utilisateur à connecter à la machine distante.
-p portIl est utilisé pour spécifier le port pour se connecter à l’hôte distant.
-qC’est le mode silencieux.
-VMode verbeux.
-XIl permet le transfert X11
-OIl 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.