Blackhold

login ssh por shared key + rsync con puerto ssh !=22

Posted on abril 30th, 2010 by admin

Algunas veces tenemos la necesidad de automatizar procesos y estos requieren muchas veces nuestra intervención, algunos de los programas que ejecutamos tienen la opción de poner el password, pero esto queda un poco feo, ya que si en la maquina en el momento de la ejecución del script hace un `ps aux` es posible que pueda ver el password del usuario que estamos usando para hacer la tarea programada, así que para ello vamos a usar un método de autentificación mediante clave compartida.

Vamos a tener el caso donde el usuario root quiere pasar unos ficheros por rsync a otro servidor y no queremos que nos pida el password, para hacerlo un poco mas complicado, el puerto por defecto de ssh de la maquina remota no va a ser el puerto por defecto, sino el 23 (para decir un numero cualquiera).


Lo primero es generar una clave de nuestro usuario (root).

# cd ~/.ssh
# ssh-keygen -t rsa

nos pide la clave, para el cometido lo que queremos hacer es que no nos pida un password, así que lo que vamos a hacer es dejar la passphrase vacía.

# ssh-copy-id -i id_rsa.pub “web@miotroservidor -p 23”

Aquí empiezan las cosas raras, si queremos indicarle que el puerto ssh de la otra máquina es el 23 lo ponemos así “usuario@servidor -p 23”, por el contrario si el puerto fuese el por defecto sería tal cual así usuario@servidor.

Nos pide el password del usuario de la maquina remota y listos, ya podemos acceder al servidor metiendo la passpharase, si no hemos puesto ninguna entrará directamente.
Esta herramienta también la podríamos usar si queremos dar acceso a un usuario a otro usuario sin tener que darle el password del usuario (imáginate por ejemplo dar la clave de root directamente), esto va a permitir que sólo se pueda acceder con esta passphrase desde la maquina que generamos la clave.

Y seguimos con lo que sería una sincronización desatendida:

rsync -av –delete –bwlimit=100 –rsh=’ssh -p23′ /var/www/ web@miotroservidor:/var/www

Con esto lo que hacemos es sincronizar el contenido de /var/www de nuestro servidor a miotroservidor, con un límite de 100kb/s y ssh por el puerto 23.

Ahora ya sólo falta meter esto en el cron, o dentro un script con otras cosas, configuramos como segundo www en nuestro DNS la otra máqina y ya tenemos un servidor maestro-esclavo en modo failover, sólo faltaría solucionar el tema del mysql, pero esto dentro de unos días ;D

This entry was posted on divendres, abril 30th, 2010 at 10:09 and is filed under ssh. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Response

« »

guy fawkes