Acceder por SSH y SCP a servidores con clave pública y privada

Poder acceder a nuestros servidores utilizando el par de claves pública/privada no es solo útil pra no tener que estar introduciendo la contraseña cada vez que accedemos, sino por que a lo mejor necesitamos ejecutar un script de shell que tiene que mover datos o ficheros entre servidores. Vamos a ver como hacerlo.

Crear las claves pública y privada

Lo hacemos desde el directorio $HOME del usuario del servidor

# ssh-keygen  -b  4096  -t  rsa

Se genera entonces las dos claves con el sistema RSA en el directorio oculto .ssh : $HOME/.ssh/id_rsa , $HOME/.ssh/id_rsa.pub

Copiamos la clave pública al servidor o host

Y esa clave la almacenamos en el fichero ‘authorized_keys, dentro de .ssh (los permisos tienen que ser 600 , es decir #chmod 600 .ssh/authorized_keys) Comprobar “muy importante”, que el direcorio oculto .ssh del directorio $HOME del usuario tenga los permisos a 700 (# chmod 700 $HOME/usuario/.ssh )

# scp .ssh/id_rsa.pub  ip_servidor:.ssh/clave_new
# ssh ip_servidor
# cd .ssh/
# cat clave_new >> authorized_keys
# rm clave_new

La primera vez que se accede a un servidor se guarda su host_key en el fichero $HOME/.ssh/know_hosts.
Entonces ya podemos utilizar ssh y scp con ese servidor sin tener que proporcionar la clave en cada conexión. Esto lo tenemos que hacer con cada servidor, y sirve a la par también de forma recíproca.

Si queremos hacer lo mismo con un cliente Windows y estamos usando Putty para acceder vía ssh, en la web de Putyy tenemos la aplicación Puttygen , para generar el par de claves pública/privada. Hacemos lo mismo que lo anterior, añadir la clave pública a ‘authorized_keys’ del servidor. Pero copiamos la que viene indicada como : ‘ Public Key for pasting into openSSH authorized_keys file ‘ , no la que hemos guardado con el botón. Ver imagen.

putty_keygen

Un comentario

  1. Otra opción :

    Genera clave si contraseña
    #ssh-keygen -t dsa

    se han generado dos archivos :
    ssh/id_dsa.pub  (clave pública) .ssh/id_dsa      (clave privada)

    Ahora se copia su clave pública al servidor:
    # sshcopyid i .ssh/id_dsa.pub usuario@servid

    Su clave pública se copia en .ssh/authorized_keys de /home/usuario en el servidor.

    Ahora se puede hacer login sin introducir password

Deja una respuesta

Tu dirección de correo electrónico no será publicada.