Comment exécuter les commandes Linux sur le système distant sur SSH?

Comment exécuter les commandes Linux sur le système distant sur SSH?

Pour travailler sur le système distant, vous vous connectez d'abord à ce système, exécutez des commandes pour effectuer différentes tâches, puis déconnectez-vous à partir de cette session. Même pour exécuter une seule commande sur un système distant, vous devez passer à travers toutes les étapes. Tout en travaillant sur les systèmes locaux et distants côte à côte, vous devez basculer plusieurs fois. L'enregistrement et l'extérieur d'un système plusieurs fois peuvent être ennuyeux. Il devrait y avoir un moyen qui vous permet d'exécuter des commandes sur un système distant sans y connecter.Heureusement, il existe un moyen de vous montrer comment exécuter des commandes sur un système distant sur SSH directement depuis votre machine locale.

Conditions préalables

En tant que préalables, vous devez avoir:

  • Machine Ubuntu
  • Utilisateur avec privilèges sudo

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

Exécuter les commandes Linux sur le système distant sur SSH

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

$ ssh

nom d'utilisateur L'utilisateur est-il sur le système distant, nom d'hôte / ip_address 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 en utilisant l'indicateur -p comme suit:

$ ssh -p

Exécuter une commande unique 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 à 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 enfermer la commande dans une seule (") ou des virgules à double inversé (" ") 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 sur SSH, les séparer en utilisant (;) ou (&&) et les enfermer dans des virgules inversées (""). Si vous ne mettez pas les commandes multiples dans des virgules inversées, 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 «Command1 && command2»

ou

$ ssh «Command1; Command2 "

En utilisant 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 émettre la commande suivante sur votre système local:

$ ssh -t étain @ 192.168.72.148 "Mkdir MyFiles && ls"

Maintenant, il vous sera demandé de fournir le mot de passe à 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, en utilisant la commande ci-dessus, vous pouvez effectuer la mise à niveau du système pour exécuter 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 émettre 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 à 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 est infructueuse.

Exécutez la commande sur le système distant avec les privilèges sudo

Certaines commandes sur Linux nécessitent des privilèges élevés comme installer ou supprimer un logiciel, pour ajouter ou supprimer un utilisateur, modifier les configurations du 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 il vous sera demandé 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 "Sudo Apt Update"

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


Remarque: l'option alors -T est utilisée ici pour allouer avec force TTY.

Exécutez la commande sur le système distant et enregistrez sa sortie sur le système local

La sortie des commandes exécutées sur les systèmes distants peut également être enregistrée dans le système local. Par exemple, la commande suivante exécutera la commande ifconfig sur le système distant, puis il enregistre 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 ceci en créant un script nommé échantillon.sh dans le système local.

$ sudo nano échantillon.shot

Ajouter des lignes ci-dessous dans le fichier de script:

#!/ bac / 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'échantillon de script.SH sur le système distant, émettez la commande ci-dessous dans le terminal:

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

Voici la sortie après l'exécution du script sur un système distant:


C'est tout ce qu'il y a! Dans ce tutoriel, nous vous avons montré comment exécuter des commandes sur un système distant sur SSH. Il facilite le travail sur le système distant et vous évite également les tracas de connexion et de sortie du système distant plusieurs fois.