web stats
Featured image of post Conexión por ssh sin passwords

Conexión por ssh sin passwords

Cómo conectar a equipos remotos mediantes ssh, sin tener que interoducir passwords, utilizando el intercambio de claves.

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. diagrama_ssh

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:

1
ls -al ~/.ssh/id_*.pub

Si no las tiene, las generamos:

1
ssh-keygen -t rsa -b 4096
  • 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:

1
ssh-copy-id remote_username@remote_IP_Address

Copiar clave por ssh

Si ya tenemos acceso pos ssh al servidor, podemos enviar manualmente la clave publica:

1
cat ~/.ssh/id_rsa.pub | ssh remote_username@remote_ip_address "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

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

1
cat ~/.ssh/id_rsa.pub

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

1
echo SSH_public_key >> ~/.ssh/authorized_keys

Si fuese necesario, corregimos permisos:

1
chmod -766 ~/.ssh

Listo!

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Creado con Hugo-Extended & theme Stack