Ejecutar comandos en equipos remotos vía SSH

Hoy vamos a ver como ejecutar a través de ssh comandos en equipos remotos. Esta práctica es de utilidad en el momento que gestionas muchos equipos y dispones de una máquina central para gestionar todos.
A partir de aquí tened en cuenta que es posible automatizar tareas en servidores remotos mediantes scripts, creación de llaves públicas ssh, etc.

El modo de ejecutar los comandos en un servidor remoto sería el siguiente:

$ ssh servidor_remoto comando

Ejemplo (ejecutamos el comando date en el servidor remoto 192.168.0.188 vía ssh a través del puerto 9999):

$ ssh root@192.168.0.188 -P9999 date
stdin: is not a tty
Sun Oct  4 20:15:14 CEST 2009

Si el comando que váis a ejecutar incorpora comillas, tendréis que entrecomillar todo el comando para evitar errores. Si el comando incluye comillas simples, entrecomilladlo con dobles, y si incluye comillas dobles, con simples:

$ ssh root@192.168.0.188 -P9999 'echo "Esto es una prueba"'
$ ssh root@192.168.0.188 -P9999 "echo 'Esto es una prueba'"

Os recomiendo revisar estos dos artículos sobre ssh, hablo sobre la securización del servicio y el acceso sin necesidad de clave:

Login SSH sin password de forma rápida y sencilla

Cómo securizar un servidor SSH

5 comentarios en “Ejecutar comandos en equipos remotos vía SSH

  1. Hola
    quisiera saber que comando ejecutar para apagar varias maquinas con ubuntu, tenia iniciado el servicio ssh
    NOTA. una sola es factible, pero varias al mismo tiempo es la pregunta?
    si alguien sabe, porfavor responda

    • Muy sencillo te haces un script

      #!/bin/bash

      ssh -l root 192.168.0.1 “init 0”
      ssh -l root 192.168.0.2 “init 0”
      ssh -l root 192.168.0.3 “init 0”
      ssh -l root 192.168.0.N “init 0”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *