SSHFS(SSH Filesystem)是一种通过普通ssh连接来挂载和与远程服务器或工作站上的目录和文件交互的文件系统客户端。
然而大多数服务器都默认支持SSH,所以配置起来就非常的简单:服务器什么都不需要操作,在客户端通过SSH挂在服务器的文件目录即可。
我这里使用的是CentOS 7
的系统
$ whoami
ansheng
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ uname -a
Linux blog 5.0.9-1.el7.elrepo.x86_64 #1 SMP Sat Apr 20 09:03:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
我们创建挂载目录以及测试需要用到的数据
$ mkdir ~/mnt # 创建挂载目录
$ ll -d ~/mnt # 注意查看目录权限
drwxrwxr-x 2 ansheng ansheng 4096 4月 28 10:52 /home/ansheng/mnt
$ echo 'Hello, ansheng~' > ~/mnt/test # 往测试文件写入内容
$ cat ~/mnt/test
Hello, ansheng~
我这里是用的macos来做测试的,其他Linux的使用方式也是大致一样的,可以具体参考相关文档。
打开https://osxfuse.github.io/
这个地址,下载客户端需要的包,然后进行安装,主要是osxfuse-3.8.3.dmg和sshfs-2.5.0.pkg
$ sshfs username@server:/path on server/ ~/path to mount point.
$ sshfs --help
首先我们创建要挂载的目录
$ whoami
shengan
$ pwd
/Users/shengan
$ mkdir ~/mnt
下面我将服务器上面ansheng
家目录下的mnt
目录挂在到本地~/mnt
下
$ sshfs -p9222 ansheng@blog.ansheng.me:/home/ansheng/mnt ~/mnt
ansheng@blog.ansheng.me's password: # 输入服务器的密码
没有报错就表示挂载完成了,然后我们通过df -h
查看挂载情况
$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
ansheng@blog.ansheng.me:/home/ansheng/mnt 9.4Gi 4.2Gi 4.7Gi 48% 146269 482051 23% /Users/shengan/mnt
通过上面的信息我们可以看到,已经挂载成功。
首先我们来查看下已经挂载的文件内容
$ cat ~/mnt/test
Hello, ansheng~
$ ls -lh ~/mnt/test
-rw-rw-r-- 1 shengan staff 16B 4 28 22:54 /Users/shengan/mnt/test
文件内容看起来没什么问题,然后我们在客户端上面创建一个文件并写入内容看看服务器会不会有
$ echo 'Hello, Python~' > ~/mnt/test2
$ cat ~/mnt/test2
Hello, Python~
通过服务器进行查看
$ ls -lh ~/mnt/
总用量 8.0K
-rw-rw-r-- 1 ansheng ansheng 16 4月 28 10:54 test
-rw-r--r-- 1 ansheng ansheng 15 4月 28 11:15 test2
$ cat ~/mnt/test2
Hello, Python~
试验成功。
通过umount
卸载即可
$ umount ~/mnt
通过df
命令可以看到挂载已经不存在了
$ ls ~/mnt
$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
linux
系统只需要安装sshfs
命令即可,其他的使用方式与macos
的一样
$ sudo yum install fuse-sshfs
$ sudo apt-get update
$ sudo apt-get install sshfs