?>/script>'; } ?> Conexión SSH mediante script. Widgets Magazine

Autor Tema: Conexión SSH mediante script.  (Leído 3264 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Ficht

  • Visitante
Conexión SSH mediante script.
« en: 26-03-2016, 22:53 (Sábado) »
Hola, estoy creando funciones a un botón (triggerhappy)....

La idea  es que el script (o parte de el) haga referencia a un comando enviado a otro router por ssh, pero no se como se tiene que hacer la linea de conexión/autenticación + comando

He estado buscando y no he encontrado nada útil..  ???  solo referencias a expect

Alguien sabe como se tiene que hacer?


danitool

  • Visitante
Re: Conexión SSH mediante script.
« Respuesta #1 en: 26-03-2016, 23:44 (Sábado) »
Lo primero que has de hacer para que entre sin necesidad de autentificarse un router en otro lo que se explica aquí

https://wiki.openwrt.org/doc/howto/dropbear.public-key.auth

Luego para ejecutar desde un router un comando en el otro pienso que bastaría con algo tal que así:

Código: [Seleccionar]
ssh root@router-remoto comando
Siento no ser más explícito, pero más o menos creo que es lo que necesitas

« Última modificación: 26-03-2016, 23:45 (Sábado) por danitool »

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: Conexión SSH mediante script.
« Respuesta #2 en: 27-03-2016, 01:10 (Domingo) »
Hola, estoy creando funciones a un botón (triggerhappy)....

La idea  es que el script (o parte de el) haga referencia a un comando enviado a otro router por ssh, pero no se como se tiene que hacer la linea de conexión/autenticación + comando

He estado buscando y no he encontrado nada útil..  ???  solo referencias a expect

Alguien sabe como se tiene que hacer?

En su tiempo puse una configuración parecida para averiguar la IP de un router remoto por SSH aquí : https://foro.seguridadwireless.net/openwrt/conocer-ip-dinamica/msg303356/#msg303356
Puede que por lo menos te sirva de ejemplo.


Ficht

  • Visitante
Re: Conexión SSH mediante script.
« Respuesta #3 en: 27-03-2016, 03:29 (Domingo) »
Hola, estoy creando funciones a un botón (triggerhappy)....

La idea  es que el script (o parte de el) haga referencia a un comando enviado a otro router por ssh, pero no se como se tiene que hacer la linea de conexión/autenticación + comando

He estado buscando y no he encontrado nada útil..  ???  solo referencias a expect

Alguien sabe como se tiene que hacer?

En su tiempo puse una configuración parecida para averiguar la IP de un router remoto por SSH aquí : https://foro.seguridadwireless.net/openwrt/conocer-ip-dinamica/msg303356/#msg303356
Puede que por lo menos te sirva de ejemplo.

Esto funciona muy bien  >:(

Código: [Seleccionar]
dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key > /tmp/secondary-router-key.pub
scp /tmp/secondary-router-key.pub root@192.168.6.1:/etc/dropbear/authorized_keys
ssh -i /etc/dropbear/dropbear_rsa_host_key 192.168.6.1

Citar
La primera línea nos genera la clave pública del router secundario.
Con la segunda línea, copiamos la clave al router primario diciéndole que nos autorice directamente cuando entremos por ssh. Cuando la ejecutemos nos pedirá la contraseña ssh que tengamos en el router principal.
La tercera línea nos conecta mediante ssh del router secundario al router primario diciéndole que utilice el fichero de autentificación a partir del que hemos sacado la clave
Nos debe dejar entrar en el router sin introducir la clave

Si lo anterior nos ha funcionado, tecleamos exit para salir del router principal y nos quedamos en el shell del router secundario.

Ahora podemos teclear o poner en un script la siguiente línea que nos dará la IP externa del router principal al que nos conectamos por SSH:

Código: [Seleccionar]
ssh -i /etc/dropbear/dropbear_rsa_host_key 192.168.6.1 ifconfig | grep 3g-wan -A 1 | grep "inet addr" | awk -F" " '{ print $2 }' | awk -F":" '{ print $2 }'
Cambiar 192.168.6.1 por la dirección del router principal, root por el nombre del usuario que corresponda y 3g-wan por el nombre del interfaz conectado al exterior.



Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2250
Re: Conexión SSH mediante script.
« Respuesta #4 en: 28-03-2016, 08:24 (Lunes) »
Hola, estoy creando funciones a un botón (triggerhappy)....

La idea  es que el script (o parte de el) haga referencia a un comando enviado a otro router por ssh, pero no se como se tiene que hacer la linea de conexión/autenticación + comando

He estado buscando y no he encontrado nada útil..  ???  solo referencias a expect

Alguien sabe como se tiene que hacer?

En su tiempo puse una configuración parecida para averiguar la IP de un router remoto por SSH aquí : https://foro.seguridadwireless.net/openwrt/conocer-ip-dinamica/msg303356/#msg303356
Puede que por lo menos te sirva de ejemplo.

Esto funciona muy bien  >:(

Código: [Seleccionar]
dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key > /tmp/secondary-router-key.pub
scp /tmp/secondary-router-key.pub root@192.168.6.1:/etc/dropbear/authorized_keys
ssh -i /etc/dropbear/dropbear_rsa_host_key 192.168.6.1

Citar
La primera línea nos genera la clave pública del router secundario.
Con la segunda línea, copiamos la clave al router primario diciéndole que nos autorice directamente cuando entremos por ssh. Cuando la ejecutemos nos pedirá la contraseña ssh que tengamos en el router principal.
La tercera línea nos conecta mediante ssh del router secundario al router primario diciéndole que utilice el fichero de autentificación a partir del que hemos sacado la clave
Nos debe dejar entrar en el router sin introducir la clave

Si lo anterior nos ha funcionado, tecleamos exit para salir del router principal y nos quedamos en el shell del router secundario.

Ahora podemos teclear o poner en un script la siguiente línea que nos dará la IP externa del router principal al que nos conectamos por SSH:

Código: [Seleccionar]
ssh -i /etc/dropbear/dropbear_rsa_host_key 192.168.6.1 ifconfig | grep 3g-wan -A 1 | grep "inet addr" | awk -F" " '{ print $2 }' | awk -F":" '{ print $2 }'
Cambiar 192.168.6.1 por la dirección del router principal, root por el nombre del usuario que corresponda y 3g-wan por el nombre del interfaz conectado al exterior.


Me alegra de que te sirviera.  ;)