Mostrando entradas con la etiqueta password. Mostrar todas las entradas
Mostrando entradas con la etiqueta password. Mostrar todas las entradas

[Tutorial] Autenticación automática en ssh usando una clave rsa

22 agosto 2009 Publicado por cLimbo 0 comentarios
Yo normalmente uso mucho ssh para administrar mi maquina en red. Cada vez que entro al servidor ssh por defecto tiene configurada la autentificación por password para acceder a la maquina pero hoy he cambiado de método, ahora uso identificación basada en RSA, esto es mas seguro y mas cómodo, seguro por que la clave aunque la conozcan no pueden entrar y es mas cómodo por que no tenemos que meter la clave, con tan solo:

ssh usuario@host

vale :)

Para hacer este proceso lo primero que debemos hacer es permitir la autentificación RSAAuthentication y configurar la AuthorizedKeysFile donde están las claves de paso para las maquinas que forman el anillo de confianza en la red, para ello editamos el archivo /etc/ssh/sshd_config en la maquina donde esta el servidor ssh al cual pretendemos entrar:

sudo nano /etc/ssh/sshd_config

Buscamos estas claves y en caso que estén comentadas las descomentamos:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

También he deshabilitado el acceso ssh mediante password para que en el caso que no posean la key no accedan por password:
PasswordAuthentication no

Tener en cuenta que RSAAuthentication es para SSH1 y PubkeyAuthentication para SSH2, de todas maneras no pasa nada por descomentar ambas, salvamos el fichero y reiniciamos el demonio:

sudo /etc/init.d/ssh restart


Ahora en la otra maquina o maquinas creamos la clave RSA y la exportamos al servidor ssh:

ssh-keygen -t rsa
cat .ssh/id_rsa.pub | ssh usuario@host "cat - >> .ssh/authorized_keys"


Con esto ya esta listo, para acceder tan simple como:

ssh usuario@host


Nos pedirá una clave la 1 vez en la sesión, esta se almacenara y no nos la pedirá mas veces hasta que no cerremos sesión. Si estamos por consola sin X tenemos que ejecutar estos 2 comandos:

ssh-agent /bin/bash
ssh-add


Nos pedirá igualmente la clave de paso y ya no nos la pedirá mas veces hasta que cerremos la sesión. Podemos guardarlo en nuestro ~/.bashrc para ahorrarnos el proceso:

echo "ssh-agent /bin/bash" >> ~/.bashrc
echo "ssh-add" >> ~/.bashrc


Des esta manera todos los procesos hijos que se inicien a partir de ahora se almacenaran. De igual manera podemos agilizarlo si usamos un entorno gráfico:

echo "ssh-agent /usr/X11R6/bin/X" >> ~/.xinitrc
echo "ssh-add" >> ~/.bashrc


Una cosa importante es cambiar los permisos del archivo authorized_keys del servidor ssh para que sea solo visible por el usuario y ningún usuario no autorizado pueda leer la clave:

chmod 600 .ssh/authorized_keys


Hacemos lo mismo en nuestra maquina con el archivo id_rsa.pub y id_rsa:

chmod 600 .ssh/id_rsa*


Esto es uno de los métodos mas seguros y nos ahorramos problemas ya que como sabéis la gente siempre intenta entrar por fuerza bruta a servidores ssh por la red y como tenemos RSA no podrán acceder a menos que posean el archivo id_rsa.pub en su sistema cosa poco menos que probable a no ser que físicamente acceda al pc.

Un saludo

Artículo cedido por un conocido; chakal^-^.