You are here

Configurar claves SSH públicas y privadas

isholgueras's picture
Submitted by isholgueras on Thu, 10/01/2015 - 11:20

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

Te recomiendo usar ssh-copy-id en lugar de un scp plano ;)

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.