Mount remote directory using SSH
Solution 1
First install the module:
sudo apt-get install sshfs
Load it to kernel:
sudo modprobe fuse
Setting permissions (Ubuntu versions < 16.04):
sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount
Now we'll create a directory to mount the remote folder in.
I chose to create it in my home directory and call it remoteDir
.
mkdir ~/remoteDir
Now I ran the command to mount it (mount on home):
sshfs [email protected]:/home/maythuxServ/Mounted ~/remoteDir
Now it should be mounted:
cd ~/remoteDir
ls -l
Solution 2
Configure ssh key-based authentication
Generate key pair on the local host.
$ ssh-keygen -t rsa
Accept all sugestions with enter key.
Copy public key to the remote host:
$ ssh-copy-id -i .ssh/id_rsa.pub user@host
Install sshfs
$ sudo apt install sshfs
Mount remote directory
$ sshfs user@host:/remote_directory /local_directory
Don't try to add remote fs to /etc/fstab
Or don't try to mount shares via /etc/rc.local .
In both cases it won't work as the network is not available when init reads /etc/fstab.
Install AutoFS
$ sudo apt install autofs
Edit /etc/auto.master
Comment out the following lines
#+/etc/auto.master.d
#+/etc/auto.master
Add a new line
/- /etc/auto.sshfs --timeout=30
Save and quit
Edit /etc/auto.sshfs
Add a new line
/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory
Remote user name is obligatory.
Save and quit
Start autofs in debug mode
$ sudo service autofs stop
$ sudo automount -vf
Observe logs of the remote ssh server
$ ssh user@remote_server
$ sudo tailf /var/log/secure
Check content of the local directory
You should see contents of the remote directory
Start autofs in normal mode
Stop AutoFS running in debug mode with CTRL-C .
Start AutoFS in normal mode
$ sudo service autofs start
Enjoy
(Tested on Ubuntu 14.04)
Solution 3
Based on my experiments, explicitly creating the fuse group and adding your user to it is NOT required to mount ssh file system.
To summarize, here are the steps copied from this page:
- Install
sshfs
$ sudo apt-get install sshfs
2.Create local mount point
$ mkdir /home/johndoe/sshfs-path/
3.Mount remote folder /remote/path
to /home/johndoe/sshfs-path/
$ sshfs [email protected]:/remote/path /home/johndoe/sshfs-path/
- And finally, to umount ...
$ fusermount -u /home/johndoe/sshfs-path/
Solution 4
Install sshfs
sudo apt-get install sshfs
Add to fstab:
<USER>@<SERVER_NAME>:<server_path> <local_path> fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/<YOUR_USER_NAME>/.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0
Solution 5
Although it is not answering your question exactly but I just wanted to mention that you can achieve the same goal using "sftp" as well. Just inside your file manager address bar type this command:
sftp://[email protected]/remote/path
Related videos on Youtube
Comments
-
Maythux over 1 year
How to mount a remote directory using
SSH
to be available same as if it is a local directory? -
Volker Siegel over 9 yearsI'm a little confused... in the
sshfs
command, I think that the mountpoint local directory is namedremoteDir
, and when I'm on the ssh serever, there is a dir/home/maythuxServ/Mounted
that is not mounted locally, and I can not tell, or care, whether it's mounted elsewhere? -
Hemm about 8 yearsI skipped some of these steps under 14.04 when I used the following guide: help.ubuntu.com/community/SSHFS
-
Matt Kleinsmith over 6 yearsNo fuse group needed (Ubuntu 16.04, Nov 2017): stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
-
Jeff over 6 yearsAre these commands running on the client or the server?
-
optimist over 5 yearsOn 18.04, I skipped the full 2nd block - setting permissions and it works fine.
-
Luís de Sousa about 5 yearsHalf of this answer either does not work or is outdated. Please consider updating.
-
Fanta over 4 yearsStill good on Ubuntu 18.04. Used it to mount a directory from a Raspberry Pi 2 on a PC. When issuing
sudo automount -vf
, if you get1 remaining in /-
it is likely because you have already manually mounted the directory at stepMount remote directory
. Rebooting should fix the issue. -
pindakaas about 4 yearsthe part about not adding stuff to /etc/fstab is wrong the option _netdev is made for this case.
-
Marco almost 4 yearsyou can but it's very slow compared to sshfs :)
-
Enterprise over 3 yearsWorks on Ubuntu 20.10
-
n.podbielski over 2 yearsWorked for me on Debian 11 but without
noempty