如何挂载远程目录以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 文件系统所必需的。
总而言之,以下是从此页面复制的步骤:
- 安装
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/
- 最后,卸载...
$ fusermount -u /home/johndoe/sshfs-path/
答案4
虽然它没有准确回答你的问题,但我只是想说你也可以使用“sftp”实现同样的目标。只需在文件管理器地址栏中输入以下命令:
sftp://[email protected]/remote/path