Configurar un servidor SSH para no usar contraseña
En algunas ocasiones es necesario, o incluso conveniente, no utilizar contraseña para conectarnos a nuestro servidor SSH. Aunque SSH es un protocolo seguro (Secure SHell), es susceptible a ataques. Veamos como podemos reforzar la seguridad a la misma vez que automatizamos procesos que requieran SSH.
En principio no es necesario tocar la configuración que viene por defecto para el servidor SSH, al menos en Ubuntu. Puede ser que en alguna otra distro sea necesario, pero no es complicado.
Lo primero que necesitamos es generar una clave pública (RSA/DSA). Suponiendo que nuestro usuario es user, ejecutamos lo siguiente:
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is: 56:72:32:05:2e:35:33:10:47:5e:2b:98:43:ab:14:8b user@host
Podemos elegir entre RSA y DSA como algoritmos de cifrado que se usarán en la clave creada. RSA es menos segura, pero a cambio es más rápido de procesar.
Otro tema importante es decidir si elegir usar una frase de paso (también conocida como contraseña :) o no usarla. Dependerá de la situación de cada uno. Hay que tener en cuenta que si decidimos usar frase de paso, antes de poder acceder al servidor SSH necesitaremos desbloquear el anillo, es decir, nos pedirá la frase. Es una opción interesante configurar el inicio de sesión para que se desbloquee automáticamente.
Para quien no lo sepa, la clave que acabamos de crear se compone de una clave pública y una clave privada. La clave pública no quiere decir que la conozca todo el mundo, sino que la debe de conocer el servidor. Los ficheros son:
- Clave privada : /home/user/.ssh/id_rsa
- Clave pública : /home/user/.ssh/id_rsa.pub
Es importante guardar a salvo la clave privada y más en especial si no se ha usado frase de paso. Con la clave pública cualquiera podría suplantar nuestra entidad.
Bueno, ahora vamos a la parte que nos interesa. Una vez tengamos la clave, debemos publicar al servidor. Para ello, es suficiente con ejecutar lo siguiente:
$ ssh-copy-id -i .ssh/id_rsa.pub user@server
donde user es nuestro usuario en el servidor server. Y por último ya sólo falta probarlo:
$ ssh server
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
