Mount /home/yunohost.backup on a remote server

I have 2 vps with this config :

VPS1 2G/20G (yunohost 11)
VPS2 8G/2T (debian 12)

I am trying to mount a folder from vps2 on /home/yunohost.backup of vps1.

What I did so far :

On vps2, as root :

adduser sftpuser
usermod -s /usr/sbin/nologin sftpuser
mkdir -p /home/sftpuser/uploads/yunohost.backup
chown root:root /home/sftpuser
chmod 755 /home/sftpuser
chown -R sftpuser:sftpuser /home/sftpuser/uploads

Now on vps1, as root :

ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub -p vps2_port sftpuser@vps2-ip

Back to vps2 :

nano /etc/ssh/sshd_config

Added this at the bottom of the file :

Match User sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication no
    ChrootDirectory /home/sftpuser
    AllowTcpForwarding no
    PermitTunnel no

Finally on vps1 :

mv /home/yunohost.backup /home/yunohost.backup.bkp

Then :

nano /etc/fstab

Added this line :

sshfs#sftpuser@vps2_ip:uploads/yunohost.backup /home/yunohost.backup fuse defaults,IdentityFile=~/.ssh/id_rsa,port=vps2_port 0 0

And

mount -a

When trying to make a backup from the webadmin I get this error :

args:
  apps:
  - collabora
  description: null
  dry_run: false
  methods: null
  name: null
  output_directory: null
  system: null
ended_at: 2024-11-26 16:33:31.366871
error: Nothing to save
interface: api
operation: backup_create
parent: null
related_to:
- - app
  - collabora
started_at: 2024-11-26 16:33:28.929062
success: false
yunohost_version: 11.3.0.2

============

2024-11-26 16:33:29,654: INFO - Collecting files to be backed up for collabora…
2024-11-26 16:33:30,608: DEBUG - Error when changing permissions for /home/yunohost.backup/tmp/20241126-163329/apps: [Errno 13] Permission denied: '/home/yunohost.backup/tmp/20241126-163329/apps'
2024-11-26 16:33:30,702: ERROR - Could not back up collabora

I get the same error with this :

sshfs#sftpuser@vps2_ip:uploads/yunohost.backup /home/yunohost.backup fuse defaults,IdentityFile=~/.ssh/id_rsa,port=vps2_port,uid=0,gid=0 0 0

More on vps2 :

root@ns546401:/home/sftpuser# ls -lha
total 28K
drwxr-xr-x 4 root     root     4.0K Nov 26 12:57 .
drwxr-xr-x 3 root     root     4.0K Nov 26 12:44 ..
-rw-r--r-- 1 sftpuser sftpuser  220 Nov 26 12:44 .bash_logout
-rw-r--r-- 1 sftpuser sftpuser 3.5K Nov 26 12:44 .bashrc
-rw-r--r-- 1 sftpuser sftpuser  807 Nov 26 12:44 .profile
drwxr-xr-x 2 sftpuser sftpuser 4.0K Nov 26 12:59 .ssh
drwxr-xr-x 4 sftpuser sftpuser 4.0K Nov 26 13:20 uploads
root@ns546401:/home/sftpuser# ls -lha uploads/yunohost.backup/
total 16K
drwxr-xr-x 4 sftpuser sftpuser 4.0K Nov 26 14:14 .
drwxr-xr-x 3 sftpuser sftpuser 4.0K Nov 26 13:37 ..
drwxr-x--- 2 sftpuser sftpuser 4.0K Nov 26 14:03 archives
drwxr-x--- 2 sftpuser sftpuser 4.0K Nov 26 16:37 tmp

On vps1 :

root@vps1:~# ls -lha /home
total 56K
drwxr-xr-x  14 root          root          4.0K Nov 26 13:26 .
drwxr-xr-x  18 root          root          4.0K Nov 26 00:23 ..
drwxrwxr-x+  2 user1          user1          4.0K Jul 24 17:49 user1
drwxrwxr-x+  6 user2          user2          4.0K Nov 21 15:04 user2
drwxr-xr-x   8 root          root          4.0K Nov 21 22:36 yunohost.app
drwxr-xr-x   1 root          root          4.0K Nov 26 14:14 yunohost.backup
drwxrwx---   4 root          admins        4.0K Oct 11  2023 yunohost.backup.bkp
drwxrwxr-x+ 10 root          root          4.0K Nov 18 15:02 yunohost.multimedia
root@vps1:~# chown root:admins /home/yunohost.backup
chown: changing ownership of '/home/yunohost.backup': Permission denied

Hello
If I were you, i’d rather use NFS instead of sftp to achieve this

1 Like

I will try it tomorrow

I don’t read all and i don’t know if it is the same with a mount but when i use a second disk for my backup with a symbolic link, i had the same error. I solved by making a symbolic link of yunohost.backup/archives. I read here on the forum that tmp can’t be a symbolic link on another disk, perhaps it’s the same with a mount in /etc/fstab and you must only mount yunohost.backup/archives and not yunohost.backup.

1 Like

That was easier than I thought

In case anyone needs to do the same :

On vps2 :

apt install nfs-kernel-server
mkdir /var/nfs/vps1/home/yunohost.backup -p
chown -R nobody:nogroup /var/nfs/vps1
nano /etc/exports
  • Add :
/var/nfs/vps1/home/yunohost.backup    __VPS1_IP__(rw,sync,no_subtree_check,no_root_squash)
  • Restart nfs-server :
systemctl restart nfs-kernel-server

On vps1 :

apt install nfs-common
  • Move yunohost backup folder to temporary folder and create a new one :
mv /home/yunohost.backup /home/yunohost.backup.bkp
mkdir /home/yunohost.backup
  • Edit fstab :
nano /etc/fstab
  • Add the mount :
__VPS2_IP__:/var/nfs/vps1/home/yunohost.backup    /home/yunohost.backup   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
  • And mount it :
sudo mount -a
  • Move the data back to backup folder :
cp -a /home/yunohost.backup.bkp/. /home/yunohost.backup/
  • Check everything is ok, then delete /home/yunohost.backup.bkp

Thanks for @Benance and @metyun

4 Likes