For mounting directories from a remote machine, usually NFS or SMB/CIFS is used which requires a running file server. On many linux servers, however, all you have is a shell account, so file transfer has to be done via
Using the FUSE Linux kernel module, which provides user space filesystems and its
sshfs client, you can mount remote directories from machines where all you have is an SSH account. If you can log in via SSH you can also mount the directory, there is no need to modify or configure anything on the remote machine.
On the client machine, you have to install FUSE and sshfs. If you’re running Ubuntu, execute the following command:
sudo apt-get install sshfs
To get the permissions to use FUSE on your local machine, your user has to belong to the
fuse group. This can be achieved using
vigr(8), for example. Don’t forget to log out and in again for the change to take effect. You can see which groups you are part of using the
id commands. From this point on, you can work without root privileges.
The next step is to create a local mount point on the client machine (using the hostname of the remote machine would be a good convention to follow):
Now you can mount the remote directory:
sshfs remote_username@remote_hostname:/home/media mountpoint
This mounts the
/home/media directory on the remote server. If you want to mount your remote home directory and the user names on the local and remote system are the same, the command can be even shorter:
sshfs remote_hostname: mountpoint
When you’re done, you can umount the directory:
fusermount -u mountpoint
sshfs(1) manpage for more information, like mapping user IDs or performance tuning.