Synology: Autenticación mediante llave pública en SSH

3 minutos de lectura

Normalmente cuando accedes mediante SSH a tu servidor NAS sueles habilitar el servicio SSH, si no lo tenias habilitado ya, y te autentificas mediante un usuario y contraseña. Utilizando la llave publica para autenticarte podrás conectar con tu servidor sin necesidad de introducir un usuario y contraseña.

Fichero de configuración

Lo primero que debemos de hacer es conectarnos mediante SSH a nuestro servidor como lo haces normalmente, con tu usuario y contraseña y editar el fichero /etc/ssh/sshd_config Al ser un fichero del sistema necesitaras utilizar sudo para obtener permisos de administrador, recuerda que para poder utilizar el comando sudo el usuario debe de pertenecer al grupo de Administradores

sudo vim /etc/ssh/sshd_config

Descomenta las lineas que contengan PubkeyAuthentication yes y AuthorizedKeysFile

Si además quieres que sólo se pueda acceder mediante la clave publica y deshabilitar el login mediante contraseña, pondremos la linea PasswordAuthentication no

Si no estas habituado a trabajar con vim, simplemente pulsa la tecla i para entrar en modo insertar, cuando termines, pulsa la tecla ESC, luego : y por ultimo wq! para salvar los cambios y salir

Reiniciar servidor SSH

Como hemos modificado el fichero de configuración deberemos reiniciar el servicion *SSH *, podemos hacerlo de dos formas diferente

  • Habilitando y deshabilitando el servicio desde DSM
  • Si aun estamos conectado al NAS por SSH, ejecutando el comando

    sudo synoservicectl --restart sshd
    

Generar las claves

Ahora necesitamos generar el par de claves pública y privada de nuestro usuario en el NAS, así que volvemos a conectar vía SSH al servidor y ejecutamos el comando ssh-keygen -t rsa, no pongas ninguna contraseña a las claves.

   ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/var/services/homes/usuario/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/services/homes/usuario/.ssh/id_rsa.
Your public key has been saved in /var/services/homes/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/fvpX6yObWnTKu75vWpfvyWSC3lYwktR1BWX2itYEYY usuario@dominio-NAS
The key's randomart image is:
+---[RSA 2048]----+
|           .++.o=|
|           E.....|
|          .   +  |
|         o . o . |
|        S = +   .|
|         . O o o |
|          = = oo=|
|           o.O==*|
|           oOX%B*|
+----[SHA256]-----+

Permisos unix

Debemos de dar los permisos Unix adecuados a las carpetas y ficheros en el NAS, si no, no funcionara

chmod 0711 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
chmod 0711 ~

Copia clave pública

Para terminar debemos de copiar la clave pública del usuario que va realizar la conexión al servidor NAS con el comando ssh-copy-id

ssh-copy-id  usario@direcion.ip.servidor
usario@direcion.ip.servidor's  password:
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh  'usario@direcion.ip.servidor'"
and check to make sure that only the key(s) you wanted were added.

Conectando

Probamos la conexión, para comprobar que no nos pide la contraseña

ssh usario@direcion.ip.servidor

Espero que te haya gustado, pasa un buen día… :penguin:

Referencia: