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
完成后,就可以像使用本地目录一样使用远程目录,如需帮助可联系华纳云。