Call to Action
I love my Synology NAS systems, but sometimes their customer-focused interfaces and terse documentation leave a lot to the imagination. It can be daunting to get basic descriptions for some of the options in the DSM interface, especially the newer DSM 7.0 interface. I recently stumbled on a problem and a couple of solutions that I wanted to share to make it easier for folks to find.
The Problem
You want to backup your Synology NAS (or portions of it) via Hyper Backup to an external rsync-compatible server via SSH.
Everything works great, and as expected, when you do not use the “Transfer Encryption” option to connect to your external server running rsyncd, but Hyper Backup throws very generic and unhelpful errors when you enable “Transfer Encryption” and attempt to use SSH.
Solution
I found this awesome post while trying to figure this out:
https://community.synology.com/enu/forum/1/post/130048
Essentially, there are two ways to make this work:
Solution 1
As this forum user explains, you can create a rsyncd.conf file in the home directory of your SSH user, because the Synology will launch the rsync daemon as the SSH user to validate paths and populate rsync modules in the DSM UI.
Solution 2
This is my preferred solution. Why? Because, the thought of having to manage custom configuration files in home directories just to populate the DSM UI is overkill. This particular solution didn’t receive the official solution flag on the Synology Forum, but it is much more elegant than Solution 1.
Here are the required steps:
- Install rsync and sshd on the remote server you wish to use as a target in Synology Hyper Backup.
- Create a service account user to use for your backup jobs on that same remote server (ex: synobackup).
- Determine where you would like to store your Hyper Backup data on that remote server (ex: /mnt/bighdd/backups).
- Ensure that your desired path exists and make the directory (ex: sudo chown synobackup:synobackup /mnt/bighdd/backups)
- Create your Synology Hyper Backup Job, while enabling “Transfer Encryption” and type the direct path on the remote server in the Module field (ex: /mnt/bighdd/backups), while also leveraging the aforementioned service account (ex: synobackup) that you created earlier.
Discover more from Warmest Robot + Warmest Human
Subscribe to get the latest posts sent to your email.
I’ve been struggling with this for a few hours, and then came across your post. It saved me propably another few hours…
Thanks.
Pawel,
Thank you for your feedback! I’m glad it was helpful.
-John
Did you manage to use encrypted rsync based on ssh-key instead of password?
I don’t see why this wouldn’t work if you copied your keys into the desired user account with something like ssh-copy-id, but I haven’t necessarily tried it yet. I had been been playing with the rsync features of Synology on some potential use cases for my homelab, but those have been put in the backlog, while I work more on preparing to manage my environment with Ansible and integrating it with Teleport Access Plane (https://goteleport.com/) and Tailscale (https://tailscale.com/). More articles to come!
Thanks,
-John
Thanks Bro! I saved some time thanks to you!
Kefir,
You are quite welcome! Thanks for visiting!