系統安裝好的第一件事就是把 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_config
將 PermitRootLogin
設為 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_config
將 AllowTcpForwarding
改為 yes
重新啟動 sshd
在一般的系統上,通常要重新啟動 sshd
都會透過 startup script,就 DSM 系統來說,位置在:
$ /usr/syno/etc.defaults/rc.d/S95sshd.sh restart
但實際測試似乎沒有作用,要先 killall sshd
, 再透過 GUI 介面重新啟動 sshd
.