Cómo ejecutar comandos en servidores remotos con SSH

Secure Shell incluye muchos trucos, muchos de los cuales pueden hacer la vida del administrador mucho más fácil. Un truco de este tipo es la capacidad de ejecutar comandos en servidores remotos sin iniciar sesión.

Índice de Contenido
  1. Qué necesitas
  2. Ejecutando un comando básico
  3. Ejecutando un comando que requiere sudo

Qué necesitas

Lo único que necesitas para esto son dos máquinas Linux adicionales, todas las cuales incluyen el servicio openssh-server en funcionamiento (y aceptando conexiones). Si no tienes instalado el daemon SSH, puedes hacerlo desde los repositorios estándar. Por ejemplo, en la plataforma Ubuntu Server, el comando para instalar el daemon SSH es:

sudo apt-get install openssh-server -y

Para CentOS 7, el comando es:

sudo yum install -y openssh-server

Una vez instalado, querrás habilitar el servidor con los comandos:

Cómo cambiar la contraseña de root en un contenedor Docker

sudo systemctl start sshd
sudo systemctl enable sshd

Ahora que tienes el daemon SSH en funcionamiento en tus servidores remotos, puedes enviarles comandos. Averigüemos cómo hacerlo.

Ejecutando un comando básico

Obtengamos una lista de archivos en un directorio /etc remoto. Para hacer esto, el comando es:

ssh USUARIO@IP_SERVIDOR "ls /etc"

Donde USUARIO es el nombre de usuario remoto e IP_SERVIDOR es la dirección IP del servidor remoto. Una vez que ingreses con éxito la contraseña del usuario remoto, obtendrás una lista del directorio /etc/ en el servidor remoto.

Muy sencillo.

Cómo acceder a instancias de AWS utilizando SSH y cómo importar tu propio par de claves

Ejecutando un comando que requiere sudo

Pero, ¿qué pasa si necesitas ejecutar un comando que requiere privilegios de sudo en un servidor remoto? Si haces eso, verás un error de tty (Figura A).

¿Cómo lo solucionas? Afortunadamente, hay un pequeño interruptor que puedes agregar al comando. Ese interruptor es -t. ¿Qué hace -t? Obliga a la asignación de seudo-terminal, por lo que SSH no tiene idea de que no tiene una terminal local para usar.

Entonces, para ejecutar un comando remoto que requiere privilegios de sudo, el comando ssh se vería así:

ssh -t USUARIO@IP_SERVIDOR "sudo COMANDO"

Supongamos, por ejemplo, que quieres que el usuario "jack" actualice un servidor remoto en 192.168.1.201. Este comando sería:

El auge del cibercrimen en la Dark Web rusa: una mirada al panorama delictivo en línea

ssh -t [email protected] "sudo apt-get upgrade -y"

Primero se te pedirá la contraseña del usuario para la conexión SSH, seguida de una segunda solicitud para la contraseña del usuario para los privilegios de sudo (Figura B).

El comando se ejecutará como si se hubiera ejecutado en la máquina local (solo que se está ejecutando en la máquina remota). Cuando el comando se complete, volverás al prompt local, listo para seguir trabajando.

Y eso es todo lo que hay que hacer para ejecutar comandos que requieren privilegios de sudo en una máquina remota, a través de SSH.

¡Cuidado! Vulnerabilidad en Google Calendar permite robo de credenciales

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo ejecutar comandos en servidores remotos con SSH , tenemos lo ultimo en tecnología 2026.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.