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 funcionar 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. Generar claves en la màquina local
ssh-keygen -t rsa -b 4096 -R 192.XXX.XXX.XXX
# Generating public/private rsa key pair. # Enter file in which to save the key (/home/ximo/.ssh/id_rsa): # /home/ximo/.ssh/id_rsa already exists. Overwrite (y/n)? n
2. Copiar las claves al servidor remoto
ssh-copy-id myuser@192.XXX.XXX.XXX #/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed #/usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys myuser@192.XXX.XXX.XXX's password:
#Number of key(s) added: 2 #Now try logging into the machine, with: "ssh 'myuser@192.XXX.XXX.XXX'" # and check to make sure that only the key(s) you wanted were added.
3. Ejecutar el ssh sobre el servidor remoto
ssh myuser@192.XXX.XXX.XXX
# Entramos ya sin pedir contraseña
========================================================================
Esto que viene a continuación es antiguo y ha quedado desfasado1. 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 la máquina, nos vuelve a pedir la contraseña !!!
No hay comentarios :
Publicar un comentario