Crear par de claves RSA para SSH

Continuando con el articulo de como Securizar SSH vamos a ver una opción para mi imprescindible.
Crear un par de claves para cada usuario para acceder al servidor significa que, para entrar necesitaremos saber el nombre de usuario, tener el archivo de la clave encriptada y la contraseña de la misma. Por lo que añade una capa de seguridad importante.

Para este fin desde la máquina cliente nos cercioramos que tenemos creado el directorio /home/ususario/.ssh y sino lo hacemos

cd ~
mkdir .ssh
chmod 700 .ssh

Ahora creamos las claves y le indicamos la contraseña (yo siempre uso una diferente a la del usuario)

ssh-keygen -t rsa -b 4096

Podemos crear también una clave dsa, simplemente cambiando rsa por dsa, si lo preferimos (la diferencia principal entre ambas es que dsa tarda menos en generar la clave pero más en logarte). Los 4096 indican la longitud en bits de la clave. Ahora tenemos el archivo de identificación en /home/usuario/.ssh/id_rsa y la clave en /home/usuario/.ssh/id_rsa.pub (sino le hemos cambiado el nombre mientras la creabamos).

Cuando tengamos creada ya la clave podemos cambiar el password, cosa que deberíamos hacer con cierta asiduedad, con

ssh-keygen -p

Para habilitar la clave en el servidor debemos copiar el contenido de la clave en /home/ususario/.ssh/authorized_keys. Lo podemos hacer copiando y pegando con nuestro editor o, creamos antes el directorio sino existe

ssh -p xxxx equipo
cd ~
mkdir .ssh
chmod 700 .ssh
exit

copiamos la clave al servidor

scp -P xxxx ~/.ssh/id_rsa.pub equipo:/home/usuario/.ssh/id_rsa.pub

creamos el archivo y le damos los permisos necesarios

ssh -p xxxx equipo
cd ~/.ssh
cat id_rsa.pub > authorized_keys
chmod 600 *
sudo /etc/init.d/ssh restart
exit

Se pueden poner restricciones de acceso en la clave. Para esto colocamos en la misma linea que la clave y al principio cualquiera de estas opciones separadas por comas
– from=»equipo,equipo2″: Nos permite el login desde el equipo o equipos indicados.
– no-port-forwarding, no-X11-forwarding, no-agent-forwarding: No podremos ni la redirección de puertos ni del protocolo X11.
– nopty: No permite al ususario el uso de un shell.
– command=»comando»: Cuando nos logamos ejecuta el comando que le indiquemos.
– permitopen=»equipo:puerto,equipo2:puerto»: Permite la redirección de puertos, pero delimitando exactamente cual.
– environment=»variable=valor,variable2=valor»: Define variables de entorno para la identidad remota.
– Para ver la lista completa:

man sshd

Una vez hecho esto solo queda probar que podemos entrar utilizando las clave

ssh -p xxxx -i ~/.ssh/clave_rsa equipo

Y si todo ha ido bien desactivaremos las contraseñas para que solo se pueda acceder a través de clave

sudo vim /etc/ssh/sshd_config

PasswordAuthentication no

Reiniciamos el servicio y ya tenemos nuestro servidor un poco más seguro.

sudo /etc/init.d/ssh restart

Deja un comentario

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