以前要存取遠端主機的檔案時,大部分都採用 NFS 來做。
但是臨時需要存取時,又很懶得設定 NFS。
sshfs 是利用 ssh 連線來將遠端主機的檔案掛載到本機來,用起來很方便,速度也不差。
而且我個人最中意的一點就是透過 ssh 連線,傳輸過程直接是加密的。
這一點在 NFS 就不是那麼方便了,要使用 NFSV4 並且 Client 與 Server 都要設定好才能加密網路傳輸。
要使用 sshfs 第一步需要在遠端機器開啟 ssh server。
這個應該算是標準配備了,所以不多說。
另外本機需要安裝 sshfs,就可以使用嘍。
sshfs 的基本指令:
- 掛載遠端檔案:
1; html-script: false ]$ sshfs username@remote.server:/remote/path/ local/path
- 解除掛載:
1; html-script: false ]$ fusermount -u local/path
不過 sshfs 預設是以遠端系統的權限來掛載,所以如果兩邊的使用者 uid 不一致的話,就會出現權限錯誤的問題。
例如檔案擁有者變成其他人,或是像下面這樣,出現根本不存在的 uid/gid 525:
1 2 |
; html-script: false ] drwxr-xr-x 1 525 525 4096 2013-09-03 09:52 test_folder |
解決辦法,是給 sshfs 加上選項來指定 uid/gid,例如我的本機帳號 uid/gid 都是一千:
1 2 |
; html-script: false ] $ sshfs -o "uid=1000,gid=1000" username@remote.server:/remote/path/ local/path |
這樣子就解決權限的問題了。