如何使用SSHFS通过SSH 挂载远程的Linux文件系统或者目录
原创使用SSHFS通过SSH挂载远程的Linux文件系统或者目录
SSHFS(Secure SHell Filesystem)是一种使用SSH协议来挂载远程文件系统或目录的Linux工具。通过SSHFS,用户可以在本地系统上访问远程服务器的文件系统,就像访问本地文件系统一样。这种方法在远程文件共享、远程开发以及需要跨网络访问文件系统时非常有用。
1. 安装SSHFS
首先,您需要在本地和远程服务器上安装SSHFS。以下是安装SSHFS的步骤:
本地服务器(运行SSHFS客户端)
sudo apt-get update
sudo apt-get install sshfs
远程服务器(运行SSHFS服务器端)
虽然SSHFS本身不要求远程服务器上安装任何特殊的软件,但您需要确保远程服务器赞成SSH连接,并且SSH服务是开启的。以下是远程服务器上也许需要的步骤:
sudo apt-get update
sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
2. 配置SSH免密登录
为了简化SSHFS挂载过程,建议配置SSH免密登录。这样,您就不需要在挂载时输入密码。
生成SSH密钥对
ssh-keygen -t rsa -b 4096
按提示操作,选择合适的文件保存密钥对。默认情况下,密钥对会保存在~/.ssh目录下。
将公钥复制到远程服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@远程服务器地址
这将把您的公钥添加到远程服务器的~/.ssh/authorized_keys文件中,并设置适当的权限。
3. 挂载远程文件系统或目录
配置好SSH免密登录后,您可以使用以下命令挂载远程文件系统或目录:
sudo sshfs 用户名@远程服务器地址:/远程目录路径 /本地挂载点 -o allow_other,uid=用户ID,gid=组ID
以下是命令的参数说明:
- 用户名@远程服务器地址:SSH连接的用户名和服务器地址。
- /远程目录路径:远程服务器上的目录路径。
- /本地挂载点:本地系统上的挂载点,即挂载后的目录。
- -o allow_other:允许非root用户挂载。
- uid=用户ID:设置挂载点的用户ID。
- gid=组ID:设置挂载点的组ID。
例如,将远程服务器上的/home/user目录挂载到本地系统的/mnt/remote目录,命令如下:
sudo sshfs user@192.168.1.100:/home/user /mnt/remote -o allow_other,uid=1000,gid=1000
4. 卸载挂载的文件系统或目录
当您不再需要访问远程文件系统或目录时,可以使用以下命令卸载:
sudo fusermount -u /本地挂载点
例如,卸载前面挂载的远程目录:
sudo fusermount -u /mnt/remote
5. 高级配置
SSHFS赞成许多高级配置选项,如缓存、权限设置、挂载选项等。以下是一些常见的配置选项:
- Cache:开启或关闭缓存。
- Mount options:设置挂载选项,如ro(只读)、rw(读写)、default_permissions(默认权限)等。
- Server mount options:设置远程服务器端的挂载选项。
例如,以下命令将远程目录挂载为只读模式,并开启缓存:
sudo sshfs user@192.168.1.100:/home/user /mnt/remote -o ro,cache=memory
总结
SSHFS是一种方便的远程文件系统挂载工具,可以帮助您轻松访问远程服务器上的文件系统。通过配置SSH免密登录和挂载远程目录,您可以在本地系统上像访问本地文件一样访问远程文件。期待本文能帮助您了解和使用SSHFS。