Cuando tienes que gestionar servidores, una de las cosas que más pereza da es tener que introducir la password cada vez que tienes que conectarte a un servidor. Otra de las razones bastante importantes es para poder comunicar dos servidores con procesos autónomos. Como es realmente importante que todos los servidores tengan su usuario y su contraseña, pero no podemos poner la contraseña en el proceso, tenemos el método de las authorized keys.
Las claves rsa públicas permiten estableces confianzas de conexión entre servidores. Para ello hay que generar una firma de servidor y llevarla a cada uno de los servidores en los que queremos conectarnos sin contraseña. Para ello os dejo aquí los pasos.
Generación de clave privada y pública por RSA
Lo primero será crear el directorio para almacenar las claves.
mkdir ~/.ssh chmod 700 ~/.ssh ssh-keygen -t rsa
Al ejecutar el comando ssh-keygen lanzará varias preguntas:
Generating public/private rsa key pair. Enter file in which to save the key (/home/hoisting/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hoisting/.ssh/id_rsa. Your public key has been saved in /home/hoisting/.ssh/id_rsa.pub.
Rellenar el campo de passphrase es realmente importante para proteger la clave privada, puesto que esta clave es la firma de tu ordenador con tu clave. Si la pones vacía, cualquiera que obtenga esa clave puede generar tantas claves públicas como quiera.
Esto genera dos ficheros: id_rsa e id_rsa.pub. Este fichero pub es el que tenemos que ir copiando a todos los servidores a los que queramos conectarnos sin recibir la pregunta de la contraseña.
Copiar la clave pública al host
Como hemos dicho, la clave pública es la que tenemos que copiar al resto de servidores. La forma más fácil es enviarla por ssh-copy-id al servidor que queramos. Veamos cómo:
Enviar la clave al servidor destino:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@servidor-destino:/home/hoisting/
nos preguntará la password, y al introducirla ya nos copiará el fichero e introducirá la clave pública en ~/.ssh/authorized_keys automáticamente
Con esto ya tendremos funcionando el login. Ahora, simplemente con hacer un ssh al servidor de destino tenemos que comprobar que nos conectamos sin que nos pida la password
Aumentar la seguridad
Por defecto, encripta la password con una clave de 2048 bits. Podemos aumentar la cantidad con:
ssh-keygen -t rsa -b 4096
Incrementando así el tiempo por si nos roban la clave y nos hacen un fuerza bruta.
Comments
ssh-copy-id
Te recomiendo usar ssh-copy-id en lugar de un scp plano ;)
Add new comment