Ssh con claves Públicas y Privadas

La razón por la que escribo este artículo, es porque acabo de resolver un problema que se tiene con el pasar del tiempo. Cada vez se tiene que administrar más servidores y uno debe recordar mayor números de claves. Si uno usa la misma clave para todos los servidores, entonces se tiene un riesgo de seguridad porque si se rompe la clave en uno, se rompe en todos. Este mini how to es útil también si se desea hacer tareas automatizadas y no quieren que se requiera el uso de contraseña para ssh (ej. sincronización con rsync).

La idea es la siguiente, vamos a crear una clave privada que funcionará como nuestra contraseña para ingresar a los servidores que necesitemos. En cada servidor copiaremos nuestra clave pública y podremos ingresar a ellos. Este sistema, bien utilizado es mucho más seguro que utilizar contraseñas.

Crear el par de claves públicas y privadas:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

Damos enter, para que las llaves se guarden en ~/.ssh

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Aquí ponemos una contraseña para proteger nuestra clave privada. Así que cada vez que vayamos usar la clave privada nos pedirá esta clave. En caso de querer utilizar ssh sin clave, dejar vacío (solo recomendable para tareas automatizadas y teniendo en cuenta los riesgos.)

Your identification has been saved in /yo/.ssh/id_rsa.
Your public key has been saved in /yo/.ssh/id_rsa.pub.

Aquí nos dice el sistema donde ha guardado nuestra clave pública y privada. La cave privada la tenemos que cuidar. Si llega a malas manos podrían ingresar a nuestros servidores (sobre todo si no esta protegida con un passprhase), si la perdemos nosotros no podremos llegar a nuestros servidores. La clave pública la subimos a los servidores donde queremos ingresar.

Copiar clave pública a servidores:

scp ~/.ssh/id_rsa.pub usuario@servidorremoto.com:
ssh usuario@servidorremoto.com
cat id_rsa.pub >> .ssh/authorized_keys

Listo ahora podemos ingresar a servidor remoto utilizando la llave privada. Copiamos nuestra clave pública a todos los servidores que queremos hacer ssh.

Otra opción que yo no conocía, pero me la hizo notar Gerardo Barajas es usar el comando ssh-copy-id.

ssh-copy-id usuario@servidorremotocom

Artículos relacionados

  • No existen artículos relacionados