Muchas veces los usuarios necesitan trabajar en sistemas remotos. Para lo cual tienen que iniciar sesión en el servidor remoto, ejecutar ciertos comandos y salir de esa sesión. ¿Es posible realizar todas estas acciones localmente? Sí, es posible usar el cliente ssh. En este artículo, veremos diferentes formas de ejecutar comandos remotos localmente usando ssh.
Requisito previo
- Cualquier distribución de Linux.
- Instale OpenSSH y habilite el servicio SSH.
- Genere pares de claves SSH para ejecutar comandos remotos desde el servidor local para evitar ingresar contraseñas.
- Requerir que los comandos se ejecuten con acceso de root o privilegio sudo.
1. Ejecución de un solo comando
Ejecutemos el comando único ‘fecha’ para buscar desde la máquina remota,
2. Redirección de comandos
Es posible redirigir la salida de un comando ejecutado en el servidor remoto a la máquina local utilizando el operador de redirección (>),
3. Ejecución de múltiples comandos
Para ejecutar varios comandos, cada comando debe separarse con un punto y coma (;) para estar entre comillas simples o dobles,
4. Ejecución de múltiples comandos usando tubería
Usando una tubería sin nombre, intentemos ver cuándo el usuario root inició sesión por última vez en el servidor remoto,
5. Ejecución de guiones
La ejecución de comandos remotos no se limita a los comandos, es posible ejecutar incluso un script ubicado en un servidor remoto siempre que exista el script. Tenemos que proporcionar la ruta absoluta del script en la máquina remota.
Aquí, se escribe un script en un servidor remoto (10.21.42.166) para imprimir el nombre del sistema operativo usando el comando ‘uname’,
Ahora vamos a ejecutarlo,
El script no tiene que ejecutar permiso, obtuvimos un error de permiso denegado. Después de cambiar el permiso, el script se ejecutó correctamente.
6. Ejecución de comandos con privilegios
En ocasiones, es posible que necesitemos ejecutar comandos con privilegios elevados. El usuario de prueba en el servidor remoto no tiene que escribir permiso en el directorio /etc/.
Hemos utilizado la opción ‘-t’ con el comando SSH, lo que permite la asignación de pseudo-terminales. como el comando sudo requiere un terminal interactivo, por lo tanto, esta opción es necesaria.
El archivo se creó en un servidor remoto,
Por lo tanto, tenemos una buena comprensión de la ejecución de comandos remotos para comandos únicos y múltiples, usando tubería, usando redirección, ejecución de scripts y ejecutando el comando con privilegios, lo que definitivamente ayudaría a facilitar el acceso remoto, cualquier tipo de automatización, etc.