GNU/Linux >> Tutoriels Linux >  >> Linux

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 fournir 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 crypte 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 didacticiel, nous apprenons les commandes SSH sous Linux avec des exemples d'utilisation.

Prérequis

  • Un client SSH
  • Un serveur SSH
  • Adresse IP ou nom du serveur distant

1. Comment se connecter en SSH à 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 ]

Par exemple, 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 oui, 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]

Par exemple, 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 changer, 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 ]

Par exemple, pour vous connecter à l'hôte distant avec une adresse IP de 192.168.239.134 en utilisant le 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 nécessaires pour se connecter à un serveur distant sans saisir de mot de passe sont les suivantes.

Générer la clé SSH

Pour générer des clés SSH, ssh-keygen est utilisé, ce 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

Entrez l'emplacement et paraphrasez, 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]

Se connecter à 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]

Par exemple, 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 un 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

Par exemple, 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'

Par exemple, 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"

Par exemple, 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 indiqué dans la syntaxe suivante.

ssh -C [USERNAME]@[HOSTNAME/IP ADDRESS]

Par exemple,

$ 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 exemple,

$ 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.

Par exemple,

$ 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 exemple,

$ ssh -F /etc/ssh/ssh_config.d [email protected]

ssh-L

L'option -L est utilisée pour le transfert 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 le transfert de port local est la suivante.

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATIONPORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Par exemple, exécutez la commande suivante pour vous connecter à l'hôte distant sur le port 3306 de l'utilisateur kali avec l'IP 192.168.239.134 depuis 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 le transfert de port distant. Cela signifie que vous pouvez rediriger un port sur le serveur distant vers un port sur votre machine locale, qui est ensuite redirigé vers un port sur la machine de destination.

La syntaxe de base pour le transfert de port distant est la suivante.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Par exemple,

$ 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 du transfert dynamique est la suivante.

ssh -D [LOCAL_IP:]LOCAL_PORT [USERNAME]@[HOSTNAME/IP ADDRESS]

Par exemple,

$ sudo ssh -C -D 1001 [email protected] 

Le -D spécifie le transfert 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 X11 de confiance 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.

Par exemple,

$ 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 Description
-A Il permet de transférer la connexion de l'agent d'authentification.
-a Il désactive la connexion de l'agent d'authentification à transférer.
-b Il est utilisé pour lier les adresses source.
-C Il est utilisé pour la compression des données.
-c cipher_spec Il sélectionne la spécification de chiffrement pour chiffrer la session.
-D Il est responsable de la redirection de port dynamique au niveau de l'application.
-E log_file 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 redirigés locaux.
-i fichier_d'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 pour se connecter à la machine distante.
port-p Il est utilisé pour spécifier le port pour se connecter à l'hôte distant.
-q C'est le mode silencieux.
-V Mode détaillé.
-X Il permet le transfert X11
-Y Il active le transfert X11 de confiance

Conclusion

Dans ce didacticiel, nous avons appris à utiliser la commande ssh avec des exemples utiles. Merci d'avoir lu, veuillez fournir vos commentaires et suggestions dans la section des commentaires ci-dessous.


Linux
  1. Envoyer des commandes à plusieurs sessions SSH avec Terminator

  2. Commande Linux wc avec exemples

  3. 19 commandes SSH courantes sous Linux avec exemples

  4. 10+ commandes Linux VI avec des exemples

  5. Commande JQ sous Linux avec exemples

Commandes Nmap avec exemples

Commandes RPM sous Linux avec exemples

Exécuter des commandes sur des systèmes Linux distants via SSH

Utilisation de la commande SSH dans les systèmes Linux/Unix

Utilisation de la commande Linux mv avec des exemples

Utilisation de la commande Linux sed avec des exemples