Se connecter en SSH au Synology à l'aide d'une clef asymétrique.

Génération de la clef SSH.

  • On génère la clef :
ssh-keygen -o -b 521 -t ecdsa -C "mon login que je n'ai plus envie de saisir"
  • -t ecdsa pour l'agorithme de signature numérique basé sur une courbe elliptique (Elliptic Curve Digital Signature Algorithm)
  • -b 521 pour le nombre de bits.
  • -C "quelquechose" pour savoir à quoi sert cette clef. Généralement on y met le nom d'utilisateur lié ou une adresse courriel.

  • Quand on exécute la commande :

# Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_ecdsa): /home/user/.ssh/syno_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# Your identification has been saved in /home/user/.ssh/syno_key
# Your public key has been saved in /home/user/.ssh/syno_key.pub
# The key fingerprint is:
# SHA256:IjVg4Tu0/qiLP7MC3TBFluQeEo7jQSWrKu8HgpYLai4 mon login que je n'ai plus envie de saisir
# The key's randomart image is:
#+---[ECDSA 521]---+
#| oo+Bo           |
#|.oo*o.           |
#|ooo.= o          |
#|o.++ = .         |
#|oo.+* . S        |
#|*oo..o .         |
#|B....            |
#|E=o .o           |
#|==BB. .          |
#+----[SHA256]-----+

Ce qu'il est bon de faire. C'est de tout de suite sauvegarder le couple de clef. La privée surtout. Avoir défini un mot de passe sur la clef permet d'augmenter son niveau de protection. Il faut se souvenir du mot de passe, bien entendu.

Transfert de la clef sur le Synology.

  • Ça tombe bien. Il existe aussi une commande pour ça.
ssh-copy-id -i /home/user/.ssh/syno_key.pub mon-login@mon-syno
  • On copie bien la clef publique, hein ! La clef privée est, et doit, restée privée bien au chaud.

  • Particularité du Synology, il stocke la clef à un endroit pas commun :

/var/services/homes/mon-login/.ssh/authorized_keys
  • Si on veut impressionner, il y a possiblité de transférer la clef de la manière suivante :
ssh mon-login@mon-syno "/bin/cat >> /var/services/homes/mon-login/.ssh/authorized_keys" < /home/user/.ssh/syno_key.pub
  • Vérifier les droits des fichiers :
  • sudo -i
  • chmod 711 /var/services/homes/mon-login (755 à l'origine)
  • chmod 700 /var/services/homes/mon-login/.ssh (700 à l'origine)
  • chmod 600 /var/services/homes/mon-login/.ssh/authorized_keys (644 à l'origine)

Modification de la configuration de sshd

Le serveur ssh.

vi /etc/ssh/sshd_config - Les trois lignes suivantes sont importantes :

RSAAuthentication yes
PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

Redémarrage du service sshd depuis l'interface DSM.

Synology control pannel. Where to stop and start sshd service.