ssh

Cómo ejecutar comandos de Linux en un sistema remoto a través de SSH?

Cómo ejecutar comandos de Linux en un sistema remoto a través de SSH?

Para trabajar en el sistema remoto, primero, inicie sesión en ese sistema, ejecute comandos para realizar diferentes tareas y luego cierre la sesión de esa sesión. Incluso para ejecutar un solo comando en un sistema remoto, debe seguir todos los pasos. Mientras trabaja en los sistemas local y remoto uno al lado del otro, debe alternar entre ellos varias veces. Iniciar y cerrar sesión en un sistema varias veces puede resultar molesto. Debe haber una forma que le permita ejecutar comandos en un sistema remoto sin iniciar sesión en él.Afortunadamente, hay una forma en que podemos mostrarle cómo ejecutar comandos en un sistema remoto a través de SSH directamente desde su máquina local.

Prerrequisitos

Como requisitos previos, debe tener:

Nota: Los comandos mencionados en este tutorial se han ejecutado en Ubuntu 20.04 Terminal LTS (Focal Fossa), que se puede abrir mediante el atajo Ctrl + Alt + T. Los mismos comandos también son aplicables para Linux Mint y Debian.

Ejecute comandos de Linux en un sistema remoto a través de SSH

Para ejecutar un comando en un sistema remoto desde su sistema local, use la siguiente sintaxis:

$ ssh

Dónde nombre de usuario es el usuario en el sistema remoto, nombre de host / dirección_IP es el nombre de host o la dirección IP del sistema remoto. La Comando / Script es el comando o secuencia de comandos que desea ejecutar en el sistema remoto.

Si el SSH se está ejecutando en algún puerto que no sea el puerto predeterminado, asegúrese de mencionarlo usando el indicador -p de la siguiente manera:

$ ssh -p

Ejecutar un solo comando en un sistema remoto

Digamos que necesita encontrar el nombre de host del sistema remoto. En este caso, el comando que necesita ejecutar en el sistema local sería:

$ ssh estaño @ 192.168.72.148 nombre de host

Ahora, se le pedirá que proporcione la contraseña para el usuario remoto. Escriba la contraseña y presione Entrar.

En el siguiente resultado, "mypc" es el nombre de host del sistema remoto.


También puede encerrar el comando entre comas simples (") o dobles (" ") así:

$ ssh estaño @ 192.168.72.148 "Nombre de host"

Ejecutar varios comandos en un sistema remoto

Si necesita ejecutar varios comandos en el sistema remoto a través de SSH, sepárelos usando (;) o (&&) y escríbalos entre comillas (“”). Si no pone los múltiples comandos entre comillas, solo el primer comando se ejecutará en la máquina remota y los otros comandos se ejecutarán en la máquina local.

$ ssh   "Comando1 && comando2"

o

$ ssh   “Comando1; command2 "

Usando el separador &&

Si usa el separador (&&), el segundo comando se ejecutará solo si el primer comando se ejecuta correctamente. Por ejemplo, para ejecutar los comandos "mkdir" y "ls" en el sistema remoto, deberá ejecutar el siguiente comando en su sistema local:

$ ssh -t estaño @ 192.168.72.148 "Mkdir myfiles && ls"

Ahora, se le pedirá que proporcione la contraseña para el usuario remoto. Escriba la contraseña y presione Entrar.

A continuación se muestra la salida de los comandos ejecutados en un sistema remoto. El segundo comando "ls" solo se ejecutará en el sistema remoto si el primer comando "mkdir" tiene éxito.


Este comando también es útil al actualizar el sistema. Generalmente, una actualización del sistema se realiza después de una actualización. Por lo tanto, utilizando el comando anterior, puede hacer que la actualización del sistema se ejecute solo si las actualizaciones se realizan correctamente.

Utilizando la ; separador

Si usa el separador (;), el segundo comando se ejecutará sin importar si el primer comando fue exitoso o no. Por ejemplo, para ejecutar los comandos "hostname" e "ip r" en el sistema remoto, deberá ejecutar el siguiente comando en su sistema local:

$ ssh estaño @ 192.168.72.148 “Nombre de host; ip r ”

Ahora, se le pedirá que proporcione la contraseña para el usuario remoto. Escriba la contraseña y presione Entrar.

A continuación se muestra la salida de los comandos ejecutados en un sistema remoto. El segundo comando "ip r" se ejecutará incluso si el primer comando no tiene éxito.

Ejecutar comando en sistema remoto con privilegios Sudo

Algunos comandos en Linux requieren privilegios elevados, como instalar o eliminar cualquier software, agregar o eliminar un usuario, cambiar la configuración del sistema, etc. Cuando ejecuta un comando en los sistemas remotos que requieren privilegios de sudo, primero se le pedirá la contraseña del usuario remoto, y luego se le pedirá la contraseña de sudo para ejecutar el comando.

Por ejemplo, para actualizar los repositorios del sistema en el sistema remoto, deberá ejecutar el siguiente comando en su sistema local:

$ ssh -t estaño @ 192.168.72.148 "Actualización de sudo apt"

A continuación se muestra el resultado del comando ejecutado en un sistema remoto con privilegios elevados.


Nota: Entonces, la opción -t se usa aquí para asignar tty de manera forzosa.

Ejecute el comando en el sistema remoto y guarde su salida en el sistema local

La salida de los comandos ejecutados en los sistemas remotos también se puede guardar en el sistema local. Por ejemplo, el siguiente comando ejecutará el comando ifconfig en el sistema remoto y luego guardará su salida en un archivo llamado ip.txt en el escritorio de la máquina local.

$ ssh -t estaño @ 192.168.72.148 "Ifconfig"> ~ / Escritorio / ip.TXT

Ejecutar secuencia de comandos local en un sistema remoto

El script colocado en el sistema local también se puede ejecutar en el sistema remoto. Expliquemos esto creando un script llamado sample.pescado en el sistema local.

$ sudo nano muestra.sh

Agregue las siguientes líneas en el archivo de secuencia de comandos:

#!/ bin / bash
fecha
nombre de host
ruta ip
ping -c 3 google.com

Ahora, guarde y cierre el script.


Ahora, para ejecutar la muestra de secuencia de comandos.sh en el sistema remoto, emita el siguiente comando en la Terminal:

$ ssh -t estaño @ 192.168.72.148 'bash -s; < sample.sh

Aquí está la salida después de que se ejecuta el script en un sistema remoto:


Eso es todo lo que hay que hacer! En este tutorial, le mostramos cómo ejecutar comandos en un sistema remoto a través de SSH. Hace que trabajar en el sistema remoto sea muy fácil y también le ahorra la molestia de iniciar y cerrar sesión en el sistema remoto varias veces.

Emule los clics del mouse colocando el mouse con Clickless Mouse en Windows 10
El uso excesivo de un mouse o teclado en una postura incorrecta puede provocar muchos problemas de salud, como tensión, síndrome del túnel carpiano y ...
Agregue gestos del mouse a Windows 10 con estas herramientas gratuitas
En los últimos años, las computadoras y los sistemas operativos han evolucionado enormemente. Hubo un momento en que los usuarios tenían que usar coma...
Controle y administre el movimiento del mouse entre múltiples monitores en Windows 10
Administrador de mouse de doble pantalla le permite controlar y configurar el movimiento del mouse entre varios monitores, al ralentizar sus movimient...