从远程主机上拷贝资料时,常用scp或rsync等命令完成。但是每次拷贝都要输入很长一串命令未免太过复杂。
介绍一个配置起来更简单的远程挂载方法:sshfs。
让操作远程目录就像操作本地目录一样。
什么是sshfs
SSHFS(安全 SHell 文件系统)是 Linux(以及其他具有 FUSE 实现的操作系统,例如 Mac OS X 或 FreeBSD)的文件系统,只需使用远程计算机上的安全 shell 登录即可对远程计算机上的文件进行操作。 在安装 SSHFS 的本地计算机上,使用 FUSE(用户空间中的文件系统)内核模块进行实现。
这样做的实际效果是,最终用户可以与通过 SSH 安全提供的远程文件无缝交互,就好像这些文件是他/她计算机上的本地文件一样。 在远程计算机上,会用到 SSH 的 SFTP 子系统。
安装
默认情况下, sshfs 并未安装到Linux发行版中,需要运行如下命令进行安装:
sudo apt-get install -y sshfs
挂载
安装 sshfs 软件包后,需要创建一个挂载目录,最终会将远程目录挂载到此目录。例如,在桌面创建shared文件夹用做挂载目录
1 | cd ~/Desktop |
使用 sshfs 命令挂载远程目录,下面的命令会将ip地址为10.20.53.100的机器上的/home/uos/Desktop/shared目录挂载当前机器的~/Desktop/shared目录(注意远端目录需要用绝对路径)
1 | sudo sshfs -o allow_other,transform_symlinks uos@10.20.6.67:/home/uos/Desktop remote_desktop |
输入远端主机的密码后,即可挂载成功。(transform_symlinks并不是必须的,当挂载的目录中存在ln链接之类的文件时才需要,否则无法获取链接指向的文件)
如果你的远程主机配置了SSH秘钥授权登录,您可以使用如下命令
1 | sudo sshfs -o allow_other,transform_symlinks,IdentityFile=~/.ssh/id_rsa uos@10.20.8.67:/home/uos/Desktop remote_desktop |
使用ls命令可以直接查看挂载目录中的内容
也可以使用df -h查看目录挂载信息
永久挂载
可以通过修改/etc/fstab或者在开机自启动的脚本中添加上述的命令
卸载
卸载挂载目录统一用umount
1 | sudo umount remote_desktop |