Skip to content

Synology DSM Guides & Tips

Allow SSH With RSA KEY

  • Log into Synology web UI as an administrator user
  • Enable “User Home”
  • Control Panel / User / Advanced, scroll down to “User Home”
  • Check “Enable user home service”, select an appropriate Location (i.e. volume1)
  • Click “Apply”

SSH into Synology as Admin User

sudo chmod 755 /volume1/homes/*youruser*
mkdir ~/.ssh && chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys && chmod 0644 ~/.ssh/authorized_keys
echo PUCLICK_Key_STRING >> ~/.ssh/authorized_keys

Configure the Synology’s SSH service to allow login by key

sudo vi /etc/ssh/sshd_config
  • Uncomment line that says: #PubkeyAuthentication yes
  • Uncomment the line that says: #AuthorizedKeyFiles .ssh/authorized_keys
  • Add a line: PasswordAuthentication no
  • Make sure that line is uncommented that says: ChallengeResponseAuthentication no
  • Save the file and exit the editor
sudo synoservicectl --restart sshd

You should now connect with rsa key.

Disable DSM Listening on 80,443 Ports

sed -i -e 's/80/81/' -e 's/443/444/' /usr/syno/share/nginx/server.mustache /usr/syno/share/nginx/DSM.mustache /usr/syno/share/nginx/WWWService.mustache

synoservicecfg --restart nginx

Installing VM Tools on Linux VM

On Debian:

sudo add-apt-repository universe
sudo apt-get install qemu-guest-agent

On CentOS 7:

yum install -y qemu-guest-agent

On CentOS 8:

dnf install -y qemu-guest-agent

Auto DSM Config Backup

Since synology's dms doesn't provide any auto-backup for it's configuration i've made a smile script that can be run at from the "Task Scheduler". The script invokes synoconfbkp cli command that will dump the config file to provided folder. I use dropbox's folder in my case (This will sync my files to DropBox account). It append a date and hostname. It also checks the same folder for files older of 60 days and deletes them so your storage won't be flooded with files from older than 2 month. I've scheduled the script to run ounces a day with the "Task Scheduler"

To use it create new Task Scheduler choose a scheduler append the script to "Run Command" at "Task Settings" don't forget to change to destinations.

synoconfbkp export --filepath=/volume1/activeShare/Dropbox/SettingsConfigs/synologyConfigBackup/$(hostname)_$(date +%y%m%d).dss && find /volume1/activeShare/Dropbox/SettingsConfigs/synologyConfigBackup -type f -mtime +60 -exec rm -f {} \;

Install zsh and oh my zsh

Add community package source to package center Open package center -> preference. Now we are at General tab. Allow install package from Synology Inc. and trusted publishers.

Switch to Package Sources tab and add the source of synocommunity:

Now you can see a list of packages in the Community tab

Install zsh from package center Simply search and install zsh from package center. Package name "Z shell".

Change shell when ssh login It is not safe to edit /etc/passwd to set default shell, since in DSM cannot use chsh command, so I found a trick to switch shell as long as you ssh login

Locate zsh's location:

which zsh

The default shell on DSM was ash when ssh into, edit ~/.profile append the codes below with the zsh location:

if [[ -x /usr/local/bin/zsh ]]; then
  export SHELL=/usr/local/bin/zsh
  exec /usr/local/bin/zsh

Now logout and login again, shell should be zsh

Install oh my zsh To install oh my zsh, you need git, you can install git from package center. Simply search git and choose "Git Server" to install

Then according to, you can have it.