使用 SSH 挂载远程目录

使用 SSH 挂载远程目录

如何挂载远程目录以SSH使其与本地目录一样可用?

答案1

首先安装模块:

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 [email protected]:/home/maythuxServ/Mounted ~/remoteDir

现在应该安装它了:

cd ~/remoteDir
ls -l

答案2

配置基于 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

不要尝试将远程文件系统添加到 /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 上测试)

答案3

根据我的实验,明确创建 fuse 组并将用户添加到其中不是挂载 ssh 文件系统所必需的。

总而言之,以下是从此页面复制的步骤:

  1. 安装sshfs

$ sudo apt-get install sshfs

2.创建本地挂载点

$ mkdir /home/johndoe/sshfs-path/

3.挂载远程文件/remote/path夹到/home/johndoe/sshfs-path/

$ sshfs [email protected]:/remote/path /home/johndoe/sshfs-path/

  1. 最后,卸载...

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

答案4

虽然它没有准确回答你的问题,但我只是想说你也可以使用“sftp”实现同样的目标。只需在文件管理器地址栏中输入以下命令:

sftp://[email protected]/remote/path

相关内容