Pour des besoins de sauvegarde, j’ai besoin d’ouvrir l’accès à mon NAS via SSH de manière automatique. Nous allons donc voir dans ce tutoriel comment mettre en place une authentification SSH par clé sur les NAS Synology.
Pour des raisons de sécurité évidente, nous allons ici créer un nouvel utilisateur. Il parait logique de ne pas utiliser l’utilisateur root de votre NAS pour autre chose que des opérations d’administration. Ceci implique quelques modifications supplémentaires puisque par défaut, le NAS n’autorise que l’utilisateur root à se connecter en SSH.
Pour les besoins de ce tutoriel, nous allons assumer que vous possédez un NAS Synology accessible ou non depuis l’extérieur. L’exemple de connexion SSH avec authentification par clé sera quant à lui présenté depuis un serveur Linux distant.
Création de l’utilisateur sur le NAS
Commencez par vous connecter à l’interface d’administration de NAS et rendez-vous dans le panneau de configuration. Tout en bas, dans le menu Terminal & SNMP, assurez-vous que le service SSH est bien activé et choisissez un port personnalisé.
Nous allons ensuite modifier un le paramètre Accueil Utilisateur dans le menu Utilisateur. L’activation de cette option permet la création automatique d’un espace de stockage pour chaque nouvel utilisateur créé. Celui nous servira notamment à stocker les clés pour l’authentification.
Vous pouvez maintenant créer l’utilisateur en question dans le menu utilisateur. Choisissez un mot de passe suffisamment fort et laissez les autres paramètres par défaut.
Notre utilisateur est maintenant créé. Nous allons maintenant effectuer quelques modifications en ligne de commande afin de lui permettre de se connecter en SSH.
Autoriser la connexion SSH
Depuis DSM 6, les NAS Synology n’acceptent plus la connexion SSH aux autres utilisateurs que root. Nous allons donc devoir nous connecter en SSH avec cet utilisateur root et modifier le fichier /etc/passwd
.
Nous allons donc modifier le fichier en question :
sudo vi /etc/passwd
Repérez la ligne qui correspond à votre utilisateur (« save » dans cet exemple) :
save:x:1029:100::/var/services/homes/save:/sbin/nologin
Et modifiez-la de cette façon :
save:x:1029:100::/var/services/homes/save:/bin/sh
[learn_more caption= »Utilisation de vi »]
Si vous n’êtes pas habitué à l’éditeur vi, voici comment vous en sortir…
Une fois le fichier ouvert, appuyez sur la touche « i » pour activer le mode insertion.
Faites vos modifications comme expliqué dans le tutoriel puis appuyer sur la touche « Echap ».
Vous êtes maintenant en mode commande et il vous suffit de taper : « :wq! » et valider avec « Entrée ».[/learn_more]
À partir de là, la connexion par SSH est autorisée pour votre utilisateur. Vous pouvez tout de suite tester cela depuis Putty ou un autre serveur avec les identifiants que vous avez choisi à la création de l’utilisateur. N’oubliez pas de préciser le port que vous avez spécifié dans les options de votre NAS.
La connexion SSH pour le nouvel utilisateur est maintenant fonctionnelle. Nous allons maintenant mettre en place une authentification par clé sur un serveur distant pour automatiser le processus de connexion.
Mise en place de la clé sur le serveur distant
Connectez-vous à votre serveur en SSH et exécutez ces commandes pour générer la clé associée à votre serveur :
ssh-keygen -t rsa
Nous allons ensuite copier cette clé sur notre le NAS en nous connectant en SSH avec l’utilisateur que nous avons créé précédemment :
ssh-copy-id user@adresse_du_nas -p votre_port
Il vous suffit d’entrer le mot de passe de l’utilisateur pour que la clé soit ajoutée aux hôtes de confiance sur le Synology. Si vous êtes toujours connecté en root sur votre NAS, vous pouvez effectuer cette commande pour vérifier que la clé a bien été mise en place :
sudo cat /var/services/homes/save/.ssh/authorized_keys
Si vous recevez une erreur ou que rien ne s’affiche, c’est que la clé n’a pas été ajoutée. Reprenez les étapes précédentes ou créez manuellement le fichier en récupérer la clé publique depuis le serveur directement.
Configuration du NAS
Il nous reste quelques modifications à effectuer sur le NAS pour que l’authentification par clé fonctionne.
Tout d’abord, les permissions sur les répertoires doivent être configurées de manières très précises. Je me suis pris la tête un bon moment avant de comprendre que le NAS n’acceptait pas la connexion avec clé si les permissions ne sont pas conformes.
sudo chmod 755 /var/services/homes/user sudo chmod 700 /var/services/homes/user/.ssh sudo chmod 600 /var/services/homes/user/.ssh/* sudo chown -R <user>:users /var/services/homes/user/.ssh
Nous allons ensuite modifier la configuration du serveur SSH du NAS pour autoriser l’authentification par clé. Pour cela, nous allons éditer le fichier /etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
Et modifier/dé-commenter les lignes suivantes :
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
Nous utilisons encore vi ici, reportez-vous aux explications données plus haut pour bien enregistrer le fichier. Dès que les modifications auront été effectuées, l’authentification par clé devrait être fonctionnelle sur votre NAS. Félicitations !
27 comments
Salut,
Sauf erreur de ma part, avec DSM 6 tous les utilisateurs du groupe administrators ont accès en SSH
C’est juste je me suis fait la même réflexion.
Salut,
Merci pour cette réflexion. En effet, je viens de tester sur mon NAS et c’est le cas.
Merci pour l’article, ça fonctionne à merveille !
Excellent, ça fonctionne à merveille, merci beaucoup !
Avec plaisirs ! Content de voir que nos tutoriels servent
Sous Vim pour enregistrer et quitter faire
😡
Le :wq fonctionne très bien 😉
De mon côté, pour que ça fonctionne, il a fallu que je rajoute :
chmod 644 authorized_keys
[…] autre article qui détaille précisément la […]
Bonjour,
Pouvez-vous me confirmer que l’accès SSH avec clé sera configuré uniquement pour l’utilisateur créé ? (PubkeyAuthentication yes)
La connexion restera possible en ssh avec le compte root sans clé ?
Merci pour votre aide
Hello,
Tel qu’est présenté le tutoriel, la connexion par mot de passe reste possible pour tous les utilisateurs, même celui-ci pour lequel nous avons mis en place l’auth par clé. 🙂
Merci 🙂
[…] sshfs/ssh key sur Synology Borg backup commands + script […]
Bonjour. Pour la première fois, grâce à votre tuto pour sa partie chmod & chown, je n’ai plus besoin de taper mon MDP, sauf que ssh me demande désormais ma passphrase, que je dois rentrer du coup. Ce qui n’était pas le cas jusqu’à présent. Je vais tenter de résoudre ce point, car je souhaite configurer une tâche rsync+cron afin d’automatiser la sauvegarde de mon boulot sur le NAS.
Problème de passphrase réglé avec un ssh-add en console dans le dossier .ssh de mon mac. Ca fonctionne parfaitement. Merci !
Bonjour
je viens d tester votre tuto et il me demande toujours le MDP pour me connecter en SSH
Je ne trouve pas le pb mais peut-être des y a t-ils eux des modification avec les derniers DSM 6.2 , non ?
identique par içi, peu importe quel type de clé utilisé, il demande toujours le mot de passe pour se connecter, y compris si l’on active uniquement le paramètre pubkey dans le sshd_config du syno (c’est même pire, il dit qu’il ne trouve pas le chemin de la clé….)
encore une mise à jour syno avec son lot de désagrément…..moi qui voulait utiliser du rsync de mon vps vers mon syno pour sauvegarder quelques fichiers tous les jours, c’est raté.
PasswordAuthentication no
merci pour le guide 🙂
Merci pour l’article !
Hello
Bonsoir
Impec ! mais j’ai un souci de « passphrase » la fonction shh-add c’est bien mais comment on l’utilise ?
Merci
Bonjour,
J’ai des erreurs sur ces lignes :
sudo chmod 600 /var/services/homes/user/.ssh/*
sudo chown -R :users /var/services/homes/user/.ssh
Je ne m’y connais pas beaucoup, pourriez-vous m’aider svp ?
Merci
Bonjour,
Je ne sais pas si cela vous aidera, ne sachant pas quelles erreurs vous sont renvoyées, mais j’ai réussi à configurer correctement en faisant comme ceci :
Mon nom d’utilisateur sur mon Synology est XyAlJ, j’ai donc tapé :
sudo chmod 600 /var/services/homes/XyAlJ/.ssh/*
sudo chown -R XyAlJ:users /var/services/homes/XyAlJ/.ssh
En remplaçant « XyAlJ » par votre nom d’utilisateur, ça devrait le faire.
J’espère que c’était ça, bonne journée.
XyAlJ
Si quelqu’un passe par là et à un peu de temps à me consacrer 🙂 Merci 🙂
Bonjour,
J’ai ce probléme pour moi « Permission denied (publickey) » quand je tente de me connecter.
[…] 11. Tuto : authentification SSH par clé sur les NAS Synology … […]