初接触 ssh, 直接在终端编辑代码不习惯, 又不会快速切换文件, 就考虑能不能 remote 直接”映射”(mount, 挂载)到 local 文件夹. sshfs 就做到了这一点.

Table of Contents

  1. About
  2. Installation
  3. Usage
  4. Note
  5. References

About

sshfs 是什么?

A network filesystem client to connect to SSH servers

简单说就是本地打开远程文件夹吧, aka mount(挂载).

Installation

安装的话, macOS 直接 homebrew 安装

1
brew install sshfs

其他的…见官方文档

Usage

用法和 ssh 差不多, 只是多指定了 remote 文件夹 和 local 文件夹(mountpoint)

1
sshfs [user@]hostname:[directory] [mountpoint]

比如我连 lab 把 os_nachos_proj1 文件夹挂载到本地的 tmp 文件夹:

1
sshfs wpengae@csl2wk01.cse.ust.hk:/homes/wpengae/os_nachos_proj1 ~/3511/tmp

然后就和 ssh 一样要你输入密码了.

用完之后, unmount:

Mac or BSD:

1
umount [mountpoint]

其他:

1
fusermount -u [mountpoint]

Note

需要注意的地方:

  1. 本地文件夹的选择

    我已开始不小心直接 mount 到 ~ 了, 然后就…死机了, 只能强行重启. 所以最好还是找个空的文件夹. 如果不是空的挂载了 remote 之后本地的文件就被 remote 暂时性取代, unmount 之后恢复.

  2. 这个文件夹的名字显示 local 原名还是 remote 新名?

    如图, 在 mac Finder, 它显示的是 remote 的硬盘分区(其实窗口上面的标题也还是原来的), 然而在终端还是本地名, 所以 directory 及外层还是不变的, directory 内的却换成了新文件.

sshfs 后的 Finder, 空间变成了 300 多 G 2333sshfs 后的 Finder, 空间变成了 300 多 G 2333

References

  1. https://unix.stackexchange.com/questions/184965/open-file-from-remote-computer-on-host-computer

  2. https://github.com/libfuse/sshfs

  3. https://en.wikipedia.org/wiki/Mount_(Unix)