ssh

Comment exécuter des commandes Linux sur un système distant via SSH?

Comment exécuter des commandes Linux sur un système distant via SSH?

Pour travailler sur le système distant, vous devez d'abord vous connecter à ce système, exécuter des commandes pour effectuer différentes tâches, puis vous déconnecter de cette session. Même pour exécuter une seule commande sur un système distant, vous devez passer par toutes les étapes. Lorsque vous travaillez côte à côte sur les systèmes locaux et distants, vous devez basculer entre eux plusieurs fois. Se connecter et se déconnecter plusieurs fois d'un système peut être ennuyeux. Il devrait y avoir un moyen qui vous permet d'exécuter des commandes sur un système distant sans vous y connecter.Heureusement, il existe un moyen de vous montrer comment exécuter des commandes sur un système distant via SSH directement à partir de votre machine locale.

Conditions préalables

Comme prérequis, vous devez avoir :

Remarque : les commandes mentionnées dans ce tutoriel ont été exécutées sur Ubuntu 20.04 Terminal LTS (Focal Fossa), qui peut être ouvert via le raccourci Ctrl+Alt+T. Les mêmes commandes sont également applicables pour Linux Mint et Debian.

Exécuter des commandes Linux sur un système distant via SSH

Pour exécuter une commande sur un système distant à partir de votre système local, utilisez la syntaxe suivante :

$ ssh

Nom d'utilisateur est l'utilisateur sur le système distant, nom d'hôte/Adresse_IP est le nom d'hôte ou l'adresse IP du système distant. le Commande/Script est la commande ou le script que vous souhaitez exécuter sur le système distant.

Si le SSH s'exécute sur un port autre que le port par défaut, assurez-vous de le mentionner à l'aide de l'indicateur -p comme suit :

$ ssh -p

Exécuter une seule commande sur le système distant

Disons que vous devez trouver le nom d'hôte du système distant. Dans ce cas, la commande que vous devez exécuter sur le système local serait :

$ ssh étain @ 192.168.72.148 nom d'hôte

Maintenant, il vous sera demandé de fournir le mot de passe de l'utilisateur distant. Tapez le mot de passe et appuyez sur Entrée.

Dans la sortie suivante, "mypc" est le nom d'hôte du système distant.


Vous pouvez également entourer la commande d'une virgule inversée simple ("") ou double ("") comme ceci :

$ ssh étain @ 192.168.72.148 "nom d'hôte"

Exécuter plusieurs commandes sur le système distant

Si vous devez exécuter plusieurs commandes sur le système distant via SSH, séparez-les à l'aide de (;) ou (&&) et placez-les entre guillemets (""). Si vous ne mettez pas les commandes multiples entre guillemets, alors seule la première commande sera exécutée sur la machine distante, et les autres commandes seront exécutées sur la machine locale.

$ ssh   "commande1 && commande2"

ou alors

$ ssh   "commande1 ; commande2"

Utiliser le séparateur &&

Si vous utilisez le séparateur (&&), la deuxième commande ne s'exécutera que si la première commande est exécutée avec succès. Par exemple, pour exécuter les commandes « mkdir » et « ls » sur le système distant, vous devrez exécuter la commande suivante sur votre système local :

$ ssh -t étain @ 192.168.72.148 "mkdir mesfichiers && ls"

Maintenant, il vous sera demandé de fournir le mot de passe de l'utilisateur distant. Tapez le mot de passe et appuyez sur Entrée.

Voici la sortie des commandes exécutées sur un système distant. La deuxième commande "ls" ne sera exécutée sur le système distant que si la première commande "mkdir" réussit.


Cette commande est également utile lors de la mise à niveau du système. Généralement, une mise à niveau du système est effectuée après une mise à jour. Par conséquent, à l'aide de la commande ci-dessus, vous pouvez exécuter la mise à niveau du système uniquement si les mises à jour réussissent.

En utilisant le ; séparateur

Si vous utilisez le séparateur (;), la deuxième commande s'exécutera, peu importe si la première commande a réussi ou non. Par exemple, pour exécuter les commandes « hostname » et « ip r » sur le système distant, vous devrez exécuter la commande suivante sur votre système local :

$ ssh étain @ 192.168.72.148 « nom d'hôte ; ip r"

Maintenant, il vous sera demandé de fournir le mot de passe de l'utilisateur distant. Tapez le mot de passe et appuyez sur Entrée.

Voici la sortie des commandes exécutées sur un système distant. La deuxième commande "ip r" sera exécutée même si la première commande échoue.

Exécuter la commande sur le système distant avec les privilèges Sudo

Certaines commandes sous Linux nécessitent des privilèges élevés comme l'installation ou la suppression de tout logiciel, l'ajout ou la suppression d'un utilisateur, la modification des configurations système, etc. Lorsque vous exécutez une commande sur les systèmes distants qui nécessitent des privilèges sudo, il vous sera d'abord demandé le mot de passe de l'utilisateur distant, puis le mot de passe sudo pour exécuter la commande.

Par exemple, pour mettre à jour les référentiels système sur le système distant, vous devrez exécuter la commande suivante sur votre système local :

$ ssh -t étain @ 192.168.72.148 "Mise à jour sudo apt"

Voici la sortie de la commande exécutée sur un système distant avec des privilèges élevés.


Remarque : L'option -t est utilisée ici pour allouer de force tty.

Exécuter la commande sur le système distant et enregistrer sa sortie sur le système local

La sortie des commandes exécutées sur les systèmes distants peut également être enregistrée sur le système local. Par exemple, la commande suivante exécutera la commande ifconfig sur le système distant, puis enregistrera sa sortie dans un fichier nommé ip.txt sur le bureau de la machine locale.

$ ssh -t étain @ 192.168.72.148 "ifconfig" > ~/Desktop/ip.SMS

Exécuter le script local sur le système distant

Le script placé sur le système local peut également être exécuté sur le système distant. Expliquons cela en créant un script nommé sample.sh dans le système local.

$ sudo nano échantillon.sh

Ajoutez les lignes ci-dessous dans le fichier de script :

#!/bin/bash
Date
nom d'hôte
itinéraire ip
ping -c 3 google.com

Maintenant, enregistrez et fermez le script.


Maintenant, pour exécuter l'exemple de script.sh sur le système distant, exécutez la commande ci-dessous dans Terminal :

$ ssh -t étain @ 192.168.72.148 'bash -s; < sample.sh

Voici le résultat après l'exécution du script sur un système distant :


C'est tout ce qu'il y a à faire! Dans ce tutoriel, nous vous avons montré comment exécuter des commandes sur un système distant via SSH. Cela rend le travail sur le système distant très facile et vous évite également les tracas de vous connecter et de vous déconnecter plusieurs fois du système distant.

Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...
Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...
Comment changer la taille, la couleur et le schéma du pointeur et du curseur de la souris sous Windows 10
Le pointeur et le curseur de la souris dans Windows 10 sont des aspects très importants du système d'exploitation. Cela peut également être dit pour d...