Cuando utilizamos ssh a menudo, el poder conectar a equipos remotos sin memorizar contraseñas nos puede facilitar mucho la vida.
- El equipo “servidor” será el equipo a donde vamos a conectar mediante ssh
- El equipo “cliente” será el origen de la conexión.
Este tipo de autenticación funciona mediante el intercambio de claves. Nuestro servidor necesita tener la clave pública del cliente dentro de sus claves autorizadas para poder validar la conexión.
Generar claves
Para poder conectar a un “servidor” mediante ssh sin utilizar contraseñas, lo primero es verificar en el equipo “cliente” que ya cuenta con claves tanto pública como privadas:
|
|
Si no las tiene, las generamos:
|
|
- la opción
-t
significa el tipo rsa
es el protocolo. en este caso es el de por defecto- la longitud de la clave se define con
-b 4096
. Por defecto es 2048
Tras responder las preguntas, nos generará las claves en la ubicación predeterminada:
- La clave privada se guardará en:
.ssh/id_rsa
- La clave pública se guardará en:
.ssh/id_rsa.pub
Copiar clave pública
Necesitamos copiar nuestra clave pública al servidor al que vamos a acceder. Para ello hay 3 métodos:
- comando
ssh-copy-id
- mediante
ssh
- manualmente
Copiar clave con ssh-copy-id
Simplemente lanzamos lo siguiente, indicando el user y hostname de nuestro servidor:
|
|
Copiar clave por ssh
Si ya tenemos acceso pos ssh al servidor, podemos enviar manualmente la clave publica:
|
|
Copiar manualmente la clave
Cómo último método podemos agregar manualmente el contenido del archivo id_rsa.pub
al archivo ~/.ssh/authorized_keys
del servidor remoto. En Windows, este es el método más fácil.
Vemos el contenido de nuestra clave pública en el equipo cliente
|
|
Dentro del equipo servidor, creamos un fichero, por ejemplo SSH_public_key
con el contenido obtenido en el paso previo, y lo añadimos a nuestro authorized_keys
|
|
Si fuese necesario, corregimos permisos:
|
|
Listo!