云服务器如何使用SSHFS挂载远程目录

SSH可以允许远程访问服务器来处理管理任务,还可以借助安全网络协议,完成SSH文件系统挂载远程目录。SSHFS使用SFTP通过安全加密把远程目录挂载到本地计算机。这样连接比标准的FTP安全得多。当挂载了远程目录就可以像在本地计算机上一样的去使用文件。

SSHFS是一种更安全的创建网络共享的方式,不同在于需要在任何需要链接在共享的机器上安装SSHFS。使用前提是需要有2台linux机器,这些机器可以是基于ubuntu或者fedoras,还需要有sudo权限。

SSHFS位于标准的存储库中,安装简单,登录服务器使用命令进行安装。

基于 Ubuntu 的发行版

sudo apt-get install sshfs -y

基于 Fedora 的发行版

sudo dnf install fuse-sshfs -y

基于 Arch 的发行版

sudo pacman -S sshfs

基于 openSUSE 的发行版

sudo zypper -n in sshfs

安装后,在本地计算机也安装上,在本地计算机上的SSHFS配置文件中设置user_allow_other 。为此,请使用以下命令打开文件:

sudo nano /etc/fuse.conf

在该文件中找到以下:

#user_allow_other

将其更改成:

user_allow_other

保存并关闭文件。在远程服务器上要创建挂在在客户端服务器上的目录,使用以下命令把新目录放在/srv中:

sudo mkdir /srv/data

创建新目录后,要赋予其所有权,便于用户或组可以访问。如果是一个用户需要访问,可以使用下面命令来更改所有权:

sudo chown -R USERNAME:USERNAME /srv/data

如果是需要多个用户访问该目录,需要先创建一个组其中 GROUP 是组的名称,USERNAME 是要添加的用户的名称。:

sudo groupadd GROUP

然后需要使用以下命令将新目录所有权更改为新组:

sudo chown -R USERNAME:GROUP /srv/data

在本地机器上,需要创建一个目录来存放挂载的远程目录。将在用户的主目录中创建此目录。

mkdir ~/data_mount

如果需要把远程目录/srv/data挂载到本地目录~/data_mount,可以通过以下命令完成:

sshfs USER@SERVER:/srv/data ~/data_mount

USER 是远程用户名,SERVER 是远程服务器的 IP 地址。系统将提示您输入远程用户的密码。成功验证后,远程目录将挂载到本地目录,您可以像访问本地计算机一样访问它。如果您在~/data_mount中保存或编辑文件,它将反映在远程计算机上的/srv/data中。

这个安装的方法只适用于临时,需要永久安装SSHFS,需要完成以下步骤。

先在本地计算机上创建SSH密钥对,确保为密钥提供一个强大唯一的密码:

ssh-keygen -t rsa

生成密钥后,用下面命令将其复制到服务器:

ssh-copy-id USER@SERVER

其中USER是远程用户名,SERVER是远程服务器的IP地址。可以测试下连接,确保其正常工作在本地计算机中实现SSH连接:

ssh USER@SERVER

 USER 是远程用户名,SERVER 是远程服务器的 IP 地址。系统应提示您输入 SSH 密钥密码,而不是您的用户密码。成功验证后,使用 exit 命令退出连接。

使此挂载永久生效,修改本地计算机上的/etc/fstab文件。以下命令打开该文件进行编辑:

sudo nano /etc/fstab

在文件底部粘贴行:

USER1@SERVER:/srv/data /home/USER1/data_mount fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USER2/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0

其中 USER1 是远程用户名,SERVER 是服务器的 IP 地址,USER2 是本地计算机上的用户名,USER_ID 和 GROUP_ID 是本地计算机独有的。您可以使用以下命令找到 ID:

Id

看到如下条目(用户ID是1000,组ID也是1000):

uid=1000(jack) gid=1000(jack)

保存文件并使用以下命令测试挂载:

mount -a

如果没有收到任何错误,则一切正常。

对此有一个警告。在启动过程中,挂载将失败,因为将在网络启动之前尝试挂载。因此,在本地机器上重新启动后,您必须打开终端窗口并使用以下命令挂载 SSHFS 目录:

mount -a