使用 SSH 挂载远程目录

May*_*hux 94 ssh mount sshfs

如何使用SSH与本地目录相同的方式挂载远程目录?

May*_*hux 109

首先安装模块:

sudo apt-get install sshfs
Run Code Online (Sandbox Code Playgroud)

将其加载到内核:

sudo modprobe fuse
Run Code Online (Sandbox Code Playgroud)

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

sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount
Run Code Online (Sandbox Code Playgroud)

现在我们将创建一个目录来挂载远程文件夹。

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

mkdir ~/remoteDir
Run Code Online (Sandbox Code Playgroud)

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

sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir
Run Code Online (Sandbox Code Playgroud)

现在应该安装它:

cd ~/remoteDir
ls -l
Run Code Online (Sandbox Code Playgroud)

  • 不需要保险丝组(Ubuntu 16.04,2017 年 11 月):/sf/ask/2494494201/ (6认同)
  • 当我使用以下指南时,我在 14.04 下跳过了其中的一些步骤:https://help.ubuntu.com/community/SSHFS (3认同)
  • 这个答案的一半要么不起作用,要么已经过时。请考虑更新。 (3认同)
  • 在 18.04,我跳过了完整的第二个块 - 设置权限并且它工作正常。 (2认同)

Woj*_*ski 26

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

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

$ ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

用回车键接受所有建议。

将公钥复制到远程主机:

$ ssh-copy-id -i .ssh/id_rsa.pub user@host
Run Code Online (Sandbox Code Playgroud)

安装 sshfs

$ sudo apt install sshfs
Run Code Online (Sandbox Code Playgroud)

挂载远程目录

$ sshfs user@host:/remote_directory /local_directory
Run Code Online (Sandbox Code Playgroud)

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

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

在这两种情况下,它都不会工作,因为当 init 读取 /etc/fstab 时网络不可用。

安装 AutoFS

$ sudo apt install autofs
Run Code Online (Sandbox Code Playgroud)

编辑 /etc/auto.master

注释掉以下几行

#+/etc/auto.master.d
#+/etc/auto.master
Run Code Online (Sandbox Code Playgroud)

添加新行

/- /etc/auto.sshfs --timeout=30
Run Code Online (Sandbox Code Playgroud)

保存并退出

编辑 /etc/auto.sshfs

添加新行

/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory
Run Code Online (Sandbox Code Playgroud)

远程用户名是必需的。

保存并退出

在调试模式下启动 autofs

$ sudo service autofs stop
$ sudo automount -vf
Run Code Online (Sandbox Code Playgroud)

查看远程ssh服务器的日志

$ ssh user@remote_server
$ sudo tailf /var/log/secure
Run Code Online (Sandbox Code Playgroud)

检查本地目录的内容

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

以正常模式启动 autofs

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

在正常模式下启动 AutoFS

$ sudo service autofs start
Run Code Online (Sandbox Code Playgroud)

享受

(在 Ubuntu 14.04 上测试)


Pra*_*nia 10

根据我的实验,挂载 ssh 文件系统不需要显式创建熔断器组并将用户添加到其中。

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

  1. 安装 sshfs

$ sudo apt-get install sshfs

2.创建本地挂载点

$ mkdir /home/johndoe/sshfs-path/

3.Mount远程文件夹/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/

  • 适用于 Ubuntu 20.10 (3认同)

Ser*_*erg 5

安装 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
Run Code Online (Sandbox Code Playgroud)