viernes, 14 de marzo de 2014

SSH - SCP SIN PASSWORD:

SSH - SCP SIN PASSWORD:

OPCIÓN #1: Con programa/comando sshpass

1. Validar que el programa "sshpass" esté instalado:
# aptitude search sshpass

2. Si el programa no se encuentra instalado, procedemos a instalarlo:

# apt-get install sshpass

Para probar podemos ejecutar lo siguiente:

1.
# sshpass -p "clave" ssh usuario@IP_Remota  (Con este comando ejecutamos una conexión ssh sin que nos solicite vía prompt, el password).

2.
# sshpass -p "clave*" scp archivo-local usuario@IP_Remota:/ruta/remota/
(Con este comando ejecutamos una conexión ssh sin que nos solicite vía prompt, el password).

OPCIÓN #1: Con llaves de autenticación.

Configuración:
En el equipo "cliente" (servidor del cual deseamos conectarnos vía ssh o transferir algún archivo usando el comando scp a otro servidor, ejecutamos:

# cd /home/usuario (nos colocamos en la carpeta home del usuario del equipo cliente con el cual deseamos hacer el ssh o scp al servidor remoto).  Si no tenemos el usuario, lo creamos con el comando adduser usuario y seteamos el password con passwd usuario.

Generamos la llave de autenticación:
# ssh-keygen -b 2048 -t rsa

Opciones:
-b Especifica el número de bits de la llave a crear. Utilizamos 2048 en este ejemplo.
-t Especifica el tipo de llave a crear (rsa, rsa1, dsa, ecdsa).  Utilizamos rsa en este ejemplo.


 Al finalizar el procedimiento, se generarán 2 archivos:
/root/.ssh/id_rsa (Clave privada para el sistema RSA).
/root/.ssh/id_rsa.pub (Clave pública para el sistema RSA).


Luego, copiamos la clave pública generada en este equipo "cliente", al servidor remoto:
# scp .ssh/id_rsa.pub frankcho@192.168.31.9:/home/frankcho/.ssh/llave_rsa8-191



Nos conectamos al equipo "servidor".  Ejecutamos los siguientes comandos:

# cd /home/frankcho/.ssh/ (Vamos al directorio donde colocamos la llave desde el equipo cliente.

# cat llave_rsa8-191 >> authorized_keys (Copiamos el contenido de la llave generadara al archivo authorized_keys.  Este archivo se creará si no existe; si existe, colocará al final del archivo el nuevo contenido.

Con el comando head authorized_keys podemos ver parte del archivo


Ahora podemos emplear los comandos scp y ssh en script o hacer conexiones sin que nos solicite el password.

NOTA: Si luego de seguido estos pasos el "cliente" todavía pide el password, cambiar los permisos del archivo "authorized_keys".  Al finalizar, intentar nuevamente el scp sin password.

[remotebackup@srbuf01bdcan01 .ssh]$ cd /home/remotebackup/.ssh/
[remotebackup@srbuf01bdcan01 .ssh]$ chmod 600 authorized_keys
[remotebackup@srbuf01bdcan01 .ssh]$ ls -la authorized_keys
-rw-------. 1 remotebackup remotebackup 400 sep  3 11:04 authorized_keys