Synology DS213+ 設定 SSH

系統安裝好的第一件事就是把 ssh 弄起來,除了可以提供 command line 的工作環境,還有因為搬家而暫時不能用的 ssh tunnel 也可以重建(不然瀏覽被封鎖的網頁實在太麻煩了)。

新增使用者

可以使用 DSM 內建的「使用者帳號」來新增

啟動 SSH 功能

於 DSM 中的「控制台」 -> 「終端機」 -> 啟動 SSH 功能

讓非 root 使用者也可登入

預設的 ssh 只有 root/admin 帳號可以登入,密碼與 admin 相同。預設的使用者因為沒有設定 shell,所以無法登入 ssh,所以需要修改 /etc/passwd 將 shell 改為 /bin/ash/bin/sh,兩者都是 alias 到 BusyBox 這個 shell.

另外,建議將 admin 這個帳號的 shell 設為 /sbin/nologin,以免有心人士亂 try 密碼。

使用 sudo 並關閉 root 登入功能

預設的 DSM 是不提供 sudo 功能,可以透過 ipkg 來提供功能:安裝 ipkg

安裝 sudo:

$ ipkg install sudo

修改 /opt/etc/sudoers,加入使用者及權限設定

your_userid ALL=(ALL) ALL

修改 /etc/ssh/sshd_configPermitRootLogin 設為 no

用 public key 登入

修改 /etc/ssh/sshd_config,將下列兩行註解符號拿掉

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

建立 $HOME/.ssh

$ mkdir ~/.ssh

建立 .ssh/authorized_keys 並把 RSA/DSS 等等 key 填入。

打開 SSH Tunnel 功能

預設是不允許建立 SSH Tunnel 的,需修改 /etc/ssh/sshd_configAllowTcpForwarding 改為 yes

重新啟動 sshd

在一般的系統上,通常要重新啟動 sshd 都會透過 startup script,就 DSM 系統來說,位置在:

$ /usr/syno/etc.defaults/rc.d/S95sshd.sh restart

但實際測試似乎沒有作用,要先 killall sshd, 再透過 GUI 介面重新啟動 sshd.