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:
esta bueno aclarar que para ejecutar mas de un comando se tendria que encerrar asi:
ssh host ‘command1; command2; command3’
fuente: http://www.linuxquestions.org/questions/linux-general-1/many-commands-using-ssh-552375/
Gracias por la información Denis.
Saludos!
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»
Puedes meter las ips en un archivo ej.
192.168.0.1
172.16.0.1
…
192.168.0.254
Lo llamas por ejemplo ips.txt
Después con un for le pasas las ips al ssh y le mandas el comando de apagado.
for i in $(cat ips.txt);do ssh root@$i init 0;done
Te recomiendo que ya tengas las llaves configuradas a tus equipos desde el equipo central para que ya no te pida password.
Saludos.
Te recomiendo que ya tengas las llaves configuradas a tus equipos desde el equipo central para que ya no te pida password.
for i in $(cat ips.txt);do sshpass -p «password» ssh root@$i init 0;done
así ya no te lo pedirá. Pero no es muy seguro que digamos.
¡Muy bueno!