windows之外的世界比想像中要大得多呢,幾乎天天都在用ssh,卻到今天才知道有sshfs這個好東西,前幾天還在為ZendStudio可以遠程編輯文件欣喜,慚愧啊,終于有比vi scp://hostname//path/to/file更方便的方式了。
sshfs,就是可以把ssh連接到的主機資源,映射到本機的文件系統(tǒng)當(dāng)中,然后用戶可以像操作本地文件一樣操作,而實際的文件改動將通過ssh傳輸?shù)竭h程主機當(dāng)中。類似于mount了一個windows共享目錄,或者另外一臺linux主機的samba共享,或者是nfs共享,只是“共享協(xié)議”變成了ssh通道罷了。
ubuntu源中已經(jīng)包含了sshfs了,以及所需的fuse包,直接apt安裝就可以了,一共是三個包:“fuse-utils libfuse2 sshfs”,不大,加起來才179k。安裝的時候會自動創(chuàng)建用戶組fuse,要使用sshfs的用戶需要先加到這個用戶組里才行(記得完成后還要重新登錄),不然會沒有權(quán)限執(zhí)行fusermount:
fuse: failed to exec fusermount: Permission denied
mkdir ~/remote_folder
在你的系統(tǒng)上創(chuàng)建了本地目錄之后,就可以通過 SSHfs 掛載遠程文件系統(tǒng)了。
掛載遠程文件系統(tǒng)
要在你的機器上掛載遠程文件系統(tǒng),你需要在終端窗口中輸入一段較長的命令。
sshfs -o idmap=user username@ip.address:/remote/file/system/ ~/remote
注意: 也可以通過 SSH 密鑰文件掛載 SSHfs 文件系統(tǒng)。只需要在上面的命中用 sshfs -o IdentityFile=~/.ssh/keyfile, 替換 sshfs -o idmap=user 部分。
輸入這個命令之后,會提示你輸入遠程用戶的密碼。如果登錄成功了,你的遠程文件系統(tǒng)就會被掛載到之前創(chuàng)建的 ~/remote_folder 目錄。
使用完了你的遠程文件系統(tǒng),想要卸載它?容易嗎?只需要在終端輸入下面的命令:
sudo umount ~/remote_folder
這個簡單的命令會斷開遠程連接同時清空 remote_folder 目錄。
總結(jié)
在 Linux 上有很多工具可以用于訪問遠程文件并掛載到本地。但是如之前所說,如果有的話,也只有很少的工具能充分利用 SSH 的強大功能。我希望在這篇指南的幫助下,也能認識到 SSHfs 是一個多么強大的工具。