miércoles, 27 de noviembre de 2019

SHH para hacer copias desatendidas de ficheros remotos

0. Introducción

Quiero hacer unas copias de ficheros de forma desatendida desde un servidor remoto.
Para ello se ha pensado en ssh.  Pero cada vez que conectamnos nos pide que introduzcamos a mano una contraseña, con lo que la opción de realizar-lo en un CRON-TAB queda descartada.

1. Opcion 1: sshpass


Se instala este programa y se simula que se introduce la contraseña. Ver serverfault 


$ sudo apt-get install sshpass
$ sshpass -p your_Password12345 ssh user@hostname

No se hasta que punto puede fuincionar en sistemas heterogeneos (widows-linux) o si existe una version adecuada a windows de sshpass

2. Opción2: compartición de claves RSA


Para ello se actúa así:

0. Comprobar que esté Openssh instalado tanto en el cliente como en el servidor, ejecutando el comando


ssh -V


1. Crear el directorio ~/.ssh en la máquina cliente (Nota ~ es el directorio de usuario /home/myuser).

2. Generar la clave rsa en dicha carpeta del cliente y pedirá una contraseña (por ejempo your_Password12345) que se tendrá que guardar. Se generará en el fichero ~/.ssh/id_rsa.pub


client$    ssh-keygen -q -f ~/.ssh/id_rsa -t rsa

3. Desde el cliente copiamos la clave al servidor remoto


client$    scp ~/.ssh/id_rsa.pub  remoteUser@remoteServer_ip:   # No olvidar los 2 puntos ":"      

y nos pedirá la contraseña de remoteUser (que tiene en el remoteServer)

4. en el servidor hacemos un append (añadimos al final del fichero) dicha clave  al fichero ~/.ssh/authorized_keys y le añadimos finalmente una línea en blanco


server$    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$    echo "" >> ~/.ssh/authorized_keys  # y metemos una linea en blanco!!! MUY IMPORTANTE
server$    rm ~/id_rsa.pub                    # y borramos el fichero que hemos descargado

5. Ejecutamos la primera vez en el cliente el acceso al servidor y nos pedirá la contraseña que le hemos dado al generar la clave rsa (en nuestro caso your_Password12345 )


client$    ssh -o PreferredAuthentications=publickey remoteUser@remoteServer_ip

6. Ya podemos entrar con ssh o scp (para copiar ficheros) y ya no nos vuelve a pedir la contraseña

client$    ssh remoteUser@remoteServer_ip

7. Problema: Si rearrancamos lamáquina, nos vuelve a pedir la contraseña !!!


No hay comentarios :

Publicar un comentario