Se connecter à son NAS Synology avec des clés SSH

Prérequis

  • L’accès SSH a été activé sur votre NAS (Panneau de configuration > Applications > Terminal & SNMP > ☑ Activer le service SSH
  • Modifier pour le port par défaut et avoir un autre compte que admin (raisons de sécurité)
  • L’accueil utilisateur est activé (Panneau de configuration > Partage de fichers > Utilisateur > Avancé > ☑ Activer le service d’accueil de l’utilisateur

Préparation

Depuis DSM 6 il n’est possible qu’à l’utilisateur « root » de se connecter par SSH, ce que nous n’allons pas faire pour des raisons évidentes de sécurité. Il va donc falloir modifier le fichier « /etc/passwd »

Activez votre compte admin (si il était désactivé) provisoirement le temps d’aller modifier le fichier en question. Le plus simple c’est d’utiliser WinSCP en configurant une connexion de type SCP.

Configurer une nouvelle connexion SCP, puis sauver.

Établissez une connexion et parcourez l’arborescence de votre NAS jusqu’à la racine et ouvrez ensuite le fichier « /etc/passwd ». Chercher une ligne qui commence par le nom d’utilisateur :

USER:x:1026:100::/var/services/homes/USER:/sbin/nologin

et modifiez la dernière partie:

USER:x:1026:100::/var/services/homes/USER:/bin/sh

Voilà cet utilisateur peut maintenant se connecter par SSH. Vous pouvez utiliser Putty par exemple, mais le plus simple c’est d’utiliser la ligne de commande (et même sous Windows grâce à WSL ?) :

$ ssh user@nas -p port_ssh

Pendant que nous sommes connecté au NAS, profitons pour configurer SSH pour accepter les connexions avec des clés d’authentification. Ouvrez le fichier /etc/ssh/sshd_config et modifier ou dé-commenter les lignes suivantes:

PubkeyAuthentification yes
AuthorizedKeysFile .ssh/authorized_keys

Quand nous aurons terminé la configuration (et testée) vous pourrez aussi modifier la ligne PasswordAuthentification no mais ne le faites pas maintenant! Vous ne pourrez plus vous connecter par mot de passe à votre NAS en SSH, faites-le (si vous le souhaiter) uniquement après avoir testé la connexion avec les clés.

Création des clés SSH avec WSL

Ouvrez votre terminal et WSL (juste le teminal pour Linux/Mac) et tapez les commandes suivantes:

$ ssh-keygen -t rsa -b 4096 -C user

Vous constaterez la création de 2 fichiers ~/.ssh/id_rsa (votre clé privée) et ~/.ssh/id_rsa.pub (votre clé publique).

Tapez ensuite 3 fois [enter] sauf si vous voulez ajouter un passphrase à votre clé, c’est plus sécuritaire mais plus contraignant (c’est vous qui voyez). Et voilà votre paire de clés SSH est prête.

Il faut maintenant ajouter votre clé privée à l’agent SSH (c’est lui qui gère vos clés) sur votre machine locale et aussi envoyer votre clé privée sur le NAS.

$ ssh-add id_rsa
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@nas -p port_ssh

Vérifiez encore les droits d’accès à vos fichiers (des droits trop permissifs créeront une erreur (en local et sur le NAS).

$ chmod 0700 ~/.ssh
$ chmod 0600 ~/.ssh/id_rsa

Et voilà ?