Synology, nastavení SSH

Pro přístup k SYNOLOGY NAS pomocí SSH, bez zadávání hesla, jsem se nemohl dlouho dopracovat. Nakonec jsem našel řešení, které odstranilo zadávání hesla. Vše spočívalo ve správném nastavení práv k jednotlivým složkám.

Nastavení v DSM 7.2 – webový portál

  1. V Ovládacím panelu DSM 7.2 otevřeme Terminál a SNMP a povolíme službu SSH, případně změníme port služby SSH pro zvýšení bezpečnosti. Potvrdíme tlačítkem Uložit.
  2. V Ovládacím panelu otevřeme Uživatelé a skupiny, vybereme kartu Rozšířené a povolíme službu Složka uživatele. Potvrdíme tlačítkem Použít.
  3. Dále vytvoříme uživatele, pod kterým se budeme přihlašovat a přiřadíme ho do skupiny Administrátors.

Pro tento postup budu používat vytvořeného uživatele git

Generování klíčů a přenos veřejného klíče na Synology

Nejprve si na počítači, ze kterého budeme přistupovat k NAS, vygenerujeme ssh klíče zadáním příkazu v terminálu Windows nebo Powershell. Terminál nebo Powershell spouštíme jako běžný uživatel, ne jako Administrator.

$ ssh-keygen -t rsa

Na otázky pro cestu k uložení klíčů ponecháme výchozí hodnoty, to znamená, že vygenerované klíče se uloží do osobní složky uživatele na PC a v ní do podsložky .ssh.

Na otázku pro zadání hesla k soukromému klíče můžeme zadat heslo, ale to budeme muset zadávat při každém použití klíče, takže ho můžeme ponechat prázdné a dvakrát potvrdíme ENTER.

Po vygenerování klíčů máme ve složce uživatele na PC a v podsložce .ssh dva soubory id_rsa a id_rsa.pub. Na synology musíme přesunout pouze soubor id_rsa.pub. Pokud máme SSH klienta, můžeme to provést zadáním příkazu

# provádíme jako uživatel < git >
$ ssh-copy-id -i ~/.ssh/id_rsa.pub git@ip-adresa-synology

Při použití tohoto příkazu budeme ještě zadávat heslo. Tento příkaz nám na Synology vytvoří v osobní složce uživatele < git > podsložku .ssh a v ní soubor authorized_keys, do kterého nakopíruje obsah souboru id_rsa.pub. Pokud nemáme klienta SSH, použijeme následující postup.

Přihlásíme se k Synology přes webové rozhraní, ve složce uživatele < git > vytvoříme podsložku .ssh a do ní importujeme soubor id_rsa.pub

Nastavení z příkazového řádku

Následně se přihlásíme k Synology pomocí SSH jako uživatel < git >

# přihlášení jako uživatel git
$ ssh git@ip-adresa-synology

Zadáme heslo uživatele < git > a jako první nakopírujeme obsah id_rsa.pub do authorized_keys zadíním následujících příkazů

# přepneme se do složky .ssh uživatele git
$ cd ~/.ssh

# zapíšeme obsah id_rsa.pub do authorizek_keys
$ cat id_rsa.pub >> authorized_keys

# a odhlásíme se od Synology
$ exit

Nyní se přihlásíme k Synology pomocí SSH jako uživatel s právy pro správu

# přihlášenní pomocí SSH jako správce
$ ssh ucet-pro-spravu@ip-adresa-synology

Nejprve upravíme konfigurační soubor SSH služby. Já mám v Synology doinstalovaný editor nano, proto budu vše provádět přes něj. Kdo nemá, použije editor vim.

$ sudo nano /etc/ssh/sshd_config

V otevřeném konfiguračním souboru provedeme následující změny odkomentováním jednotlivých řádků nebo přepsáním konfiguračních parametrů. Nastavení jednotlivých parametrů je:

  • odkomentovat řádek PubkeyAuthetication yes
  • odkomentovat řádek AuthorizedKeysFile .ssh/authorized_keys
  • zkontrolovat nastavení PasswordAuthentication yes , případně odkomentovat řádek
  • zkontrolovat nastavení ChallengeResponseAuthentication no, případně odkomentovat řádek
  • zkontrolovat nastavení UsePAM yes
  • zkontrolovat nastavení AllowTcpForwarding no
  • zkontrolovat nastavení ChrootDirectory none

Ostatní nastavení na konci konfiguračního souboru ponechat beze změn. Takto upravený konfigurační soubor uložíme a restartujeme službu ssh

# restartování služby SSH
$ sudo systemctl restart sshd

Dále nastavíme přístupová práva ke složkám uživatele < git >

# změň název uživatele a jeho složky podle skutečného názvu
# v příkladu použiju název <git>

$ chown git:users /volume1/homes/git/
$ chown git:users /volume1/homes/git/.ssh
$ chown git:users /volume1/homes/git/.ssh/authorized_keys
$ chmod 755 /volume1/homes/git/
$ chmod 700 /volume1/homes/git/.ssh 
$ chmod 600 /volume1/homes/git/.ssh/authorized_keys

Po odhlášení od Synology jako uživatel pro správu se následně přihlásíme k Synology pomocí klíče zadáním příkazu ssh s parametry, kde -i je cesta k privátnímu klíči a -p je číslo portu, na kterém poslouchá služba SSH na Synology

$ ssh -i ~/.ssh/id_rsa -p 22 git@ip-adresa-synology

Nyní bychom už neměli vidět výzvu pro zadání hesla a mělibychom být připojeni. Pokud používáte na Synology Firewall, musíte provést jeho konfiguraci pro přístup k službě SSH.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *