使用SSH挂载远程目录


69

如何使用SSH与本地目录相同的方式来安装远程目录?

Answers:


78

首先安装模块:

sudo apt-get install sshfs

加载到内核:

sudo modprobe fuse

设置权限(Ubuntu版本<16.04):

sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount

现在,我们将创建一个目录来装入远程文件夹。

我选择在主目录中创建它并将其命名remoteDir

mkdir ~/remoteDir

现在,我运行命令来挂载它(挂载在家里):

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir

现在应该安装它:

cd ~/remoteDir
ls -l

我有点困惑...在sshfs命令中,我认为mountpoint本地目录名为remoteDir,当我在ssh服务器上时,有一个/home/maythuxServ/Mounted不在本地挂载的目录,我无法分辨,或者关心,它是否安装在其他地方?
Volker Siegel's

3
当我使用以下指南时,在14.04下跳过了其中一些步骤:help.ubuntu.com/community/SSHFS
Hemm,2013年

4
无需保险丝组(Ubuntu 16.04,2017年11月):stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
Matt Kleinsmith

2
在18.04,我跳过了完整的第二个块-设置权限,它工作正常。
乐观主义者

3
此答案的一半不起作用或已过时。请考虑更新。
路易斯·德索萨

18

配置基于SSH密钥的身份验证

在本地主机上生成密钥对。

$ ssh-keygen -t rsa

使用回车键接受所有建议。

将公钥复制到远程主机:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host

安装sshfs

$ sudo apt install sshfs

挂载远程目录

$ sshfs user@host:/remote_directory /local_directory

不要尝试将远程fs添加到/ etc / fstab

或不要尝试通过/etc/rc.local挂载共享。

在这两种情况下,由于init读取/ etc / fstab时网络均不可用,因此无法使用。

安装AutoFS

$ sudo apt install autofs

编辑/etc/auto.master

注释掉以下几行

#+/etc/auto.master.d
#+/etc/auto.master

添加新行

/- /etc/auto.sshfs --timeout=30

保存并退出

编辑/etc/auto.sshfs

添加新行

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory

远程用户名是必填项。

保存并退出

在调试模式下启动autofs

$ sudo service autofs stop
$ sudo automount -vf

查看远程SSH服务器的日志

$ ssh user@remote_server
$ sudo tailf /var/log/secure

检查本地目录的内容

您应该看到远程目录的内容

在正常模式下启动autofs

使用CTRL-C停止在调试模式下运行的AutoFS。

在正常模式下启动AutoFS

$ sudo service autofs start

请享用

(在Ubuntu 14.04上测试)


5

根据我的实验,挂载ssh文件系统不需要显式创建保险丝组并向其中添加用户。

总结一下,这是从此页面复制的步骤:

  1. 安装 sshfs

$ sudo apt-get install sshfs

2.创建本地挂载点

$ mkdir /home/johndoe/sshfs-path/

3.将远程文件夹安装/remote/path/home/johndoe/sshfs-path/

$ sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/

  1. 最后,要...

$ fusermount -u /home/johndoe/sshfs-path/


3

安装sshfs

sudo apt-get install sshfs

添加到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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.