Estoy un poco cansado de meter las contraseñas por ssh cada vez que tengo que entrar a una máquina, así que toca crear claves ssh para poder entrar sin contraseñas y configurar el fichero ~/.ssh/config para que sepa que clave usar en cada servidor. Y además, son un poco más seguras, siempre y cuando desactivemos el inicio con contraseña.

Creación de clave ssh

Lo primero que haremos sera crear la clave con la orden ssh-keygen, nos pedirá donde la queremos guardar, por defecto se guarda en /home/$USER/.ssh/ con el nombre id_rsa, pero le podemos poner en nombre que queramos.
imagen
En caso de que el servidor sea accesible desde internet, siempre es mejor ponerle una contraseña a la clave.

Añadir clave ssh al servidor

Una vez tengamos las claves las tendremos que instalar en el servidor remoto, existen varias formas, pero la mas fácil es usar la orden ssh-copy-id usuario@servidor tal y como se ve en la imagen de debajo,
imagen Veréis que en la primera línea se nos indica la clave que instalara en el servidor remoto, esto solo es importante en caso de que tengamos mas de una clave, como veremos mas adelante. Una vez instalada, podemos comprobar que podemos entrar sin que nos pida la contraseña. imagen

Tener múltiples claves para diferentes servidores

Como quiero tener dos claves, una sin contraseña para los servidores locales y otra con para los accesibles desde internet, tendremos que crear y configurar una segunda clave.

Creación de una segunda clave

Para crear una segunda clave volveremos a usar la orden ssh-keygen pero esta vez le pondremos otro nombre, seguramente tendréis que poner la ruta absoluta o no creará la clave,
imagen

Añadir la segunda clave a un servidor remoto

Si intentamos instalar la segunda clave creada en el servidor usando el ssh-copy-id -n sin ninguna opción veremos(ver captura) que nos indicara que clave quiere instalar, el -n es para que nos indique que hará sin hacerlo, lo conocido como un dry run en este caso veremos que esta intentando instalar la clave id_rsa.pub,
imagen
Cuando tenemos varias claves podemos decir que clave queremos instalar con el -i y la ruta de la clave a instalar, como se puede ver en la captura si le damos la ruta del qi4k5w.xyz.pub veremos que la intenta instalar,
imagen
Una vez hayamos comprobado que va a instalar la clave que queremos usar podremos quitar el -n y nos la instalaría.

Configuración del fichero ~/.ssh/config

Ahora el punto y final, cuando ssh tiene varias claves para elegir, no siempre coge la correcta, teóricamente va probando diferentes opciones hasta que puede entrar, sea por password o por clave, así que ahora configuraremos el fichero ~/.ssh/config que sirve para indicarle que clave usar donde, aunque tiene mas opciones.

Cuando hacia las pruebas me pasaba que me pedía la contraseña porque aún estaba activada, y no quería deshabilitar el acceso hasta estar seguro,
imagen
Sí le indicaba la clave sí que me pedía la contraseña de la clave y no del servidor
imagen
El fichero config va en ~/.ssh donde tenemos las claves,

En mi caso el fichero puede funcionar con solo dos lineas, Host que es donde le indicamos la IP/dominio e IdentityFile que es la ruta de la clave que queremos usar para la IP/dominio que le hemos dicho en la linea anterior,
imagen
Este fichero tiene muchas más opciones, os recomiendo mirar la configuración del mismo,

Por ejemplo(y robándoselo a Red Hat) si queremos que esta clave sea para entrar a un grupo de servidores bajo el mismo dominio sin tener que indicar el usuario y con clave, podemos usar la siguiente configuración,

Host *fedoraproject.org *fedorapeople.org *pagure.io
	User lookitup
    IdentityFile ~/.ssh/id_IKnowWhichKey
	IdentitiesOnly yes

Tenéis más información en el fichero ‘/etc/ssh/ssh_config’ y en la documentación de Red Hat.

Bibliografía