Autologin con ssh desde Windows

Hace tiempo me fue un suplicio tener que reiniciar una base de datos de oracle que cada dos por tres porque se sobrecargaba. Tenia que abrir el putty, logearme en una maquina y lanzar un script.

Puede que sea un poco vago, pero cuando pasa dos o tres veces al dia, resulta un poco coñazo😛

Una forma muy sencilla (tambien se puede hacer con otro paquete que ofrezca ssh) desde windows es usar cwRsync (esta herramienta sirve para cosas mucho mas utiles), os descargais el cwRsync_3.0.0_Installer.exe y al instalarlo proporciona un cliente de ssh que podemos usar en linea de comandos desde windows, y que al final lanzaremos con un “.bat”.

Antes que nada deberemos de generar un par de claves, una publica y una privada en nuestro servidor unix. No le vamos a poner mucha configuracion al generarla, aunque el comando ssh-keygen es mas complejo.

Entramos en el directorio donde almacenaremos la clave y donde mas adelante le diremos al daemon de ssh que coja los ficheros de claves. Si no existe, lo creamos.

cd /root/.ssh/

lanzamos el comando:

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Nos pide la ruta donde guardar el par de claves. Como estamos logeados como root, ahí nos lo deja.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

No ponemos password y damos a enter.

Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b3:06:38:7d:7b:cf:50:01:e8:76:1e:02:a7:e7:bb:a4 root@suse

Copiamos en contenido a otro fichero:

cat id_rsa.pub >> authorized_keys

Editamos el fichero de configuracion de sshd:

vi /etc/ssh/sshd_config

y descomentamos la linea que apuntara a nuestra clave:

AuthorizedKeysFile     .ssh/authorized_keys

Reiniciamos el servidor ssh:

/etc/init.d/sshd reload

Nos copiamos las claves a nuestro ordenador windows, en realidad basta con copiarnos la clave privada “id_rsa”. La copiamos al directorio de instalacion de los binarios por defecto de cwRsync en: C:Archivos de programacwRsyncbin

Nos metemos en linea de comandos de windows y vemos lo que ssh.exe nos muestra:

C:Archivos de programacwRsyncbin>ssh.exe
usage: ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-i identity_file] [-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-w local_tun[:remote_tun]] [user@]hostname [command]

Co esto sacamos lo que nos interesa (vemos que tenemos muchas mas opciones):

  • ssh.exe
  • usuario@servidor
  • -i id_rsa: clave privada que hemos generado
  • [command] /etc/init.d/oracle_script restart

Lo tenemos casi listo. Nos creamos un fichero sencillo con extension “.bat” y metemos lo siguiente:

ssh.exe root@192.168.0.10 -i id_rsa “/etc/init.d/oracle_script restart”

Ahora ejecutamos el archivo y nos reiniciara la bbdd en nuestro ejemplo, pero se puede aplicar a cualquier otra cosa e incluso el fichero bat es de lo mas sencillo.

Es cierto que todo esto puede suponer un pequeño problema de seguridad, pero evitar eso hay que controlar los privilegios y no usar nunca una clave ssh para root (peores cosas he visto), sino para un usuario con menos privilegios, o en este ejemplo para el usuario oracle.

Etiquetas: , , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: