利用SSH Filesystem實現(xiàn)網(wǎng)絡(luò)安全連接
遠程文件系統(tǒng)的訪問有很多種不同的實現(xiàn)方式,一些常見的連接方式比其它特定情況下的更有用。“網(wǎng)絡(luò)文件系統(tǒng)”就屬于這樣的一類,網(wǎng)絡(luò)文件系統(tǒng)軟件提供了一種方法,可以將遠程計算機上的文件系統(tǒng)當作本地文件系統(tǒng)的一部分,但在怎樣進行無縫結(jié)合方面,它還存在很多問題。畢竟,實際效果的好壞取決于文件系統(tǒng)的瀏覽界面情況,受網(wǎng)絡(luò)帶寬和延遲影響的訪問時間,以及其它涉及系統(tǒng)的因素。
對于網(wǎng)絡(luò)文件系統(tǒng)軟件來說,最著名的一個例子就是微軟的通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS),它可以容許微軟Windows“映射網(wǎng)絡(luò)驅(qū)動器”并利用資源管理器對網(wǎng)絡(luò)進行“瀏覽”。另一個是最早由太陽計算機系統(tǒng)開發(fā)的網(wǎng)絡(luò)文件系統(tǒng)(NFS),作為美國電話電報公司開發(fā)的UNIX系統(tǒng)配置已經(jīng)有15年的歷史了。盡管還存在幾十種其他的選擇,但這兩種系統(tǒng)占據(jù)了網(wǎng)絡(luò)文件系統(tǒng)的主流。
即使在未加密的網(wǎng)絡(luò)中,加密網(wǎng)絡(luò)文件系統(tǒng)也可以為遠程文件系統(tǒng)訪問提供安全連接。在加密網(wǎng)絡(luò)中,在數(shù)據(jù)傳輸?shù)臅r間進行加密也是一個好主意。對于安裝了Openssh的系統(tǒng)來說,實際上這包含了幾乎所有的開源類Unix操作系統(tǒng),sshfs—ssh文件系統(tǒng)—作為可驗證的方便安全的網(wǎng)絡(luò)文件系統(tǒng),是用來訪問遠程計算機上存儲數(shù)據(jù)的完美選擇
因為它是基于ssh的,所以需要在客戶端計算機上安裝和使用sshFS的話,就需要安裝Openssh。幾乎所有的Linux主要發(fā)行版本和BSD Unix操作系統(tǒng),在默認配置下都已經(jīng)安裝了Openssh的,所以你不會需要單獨安裝它。此外,服務(wù)器端—你希望能夠從本地客戶端系統(tǒng)訪問的計算機中的文件系統(tǒng)—需要運行Openssh服務(wù)器進程。
ssh文件系統(tǒng)也是基于FUSE,也就是所謂的“用戶空間文件系統(tǒng)”。FUSE在類Unix系統(tǒng)中提供了一個API,可以用于建立高級別的文件系統(tǒng),并且可以實現(xiàn)不需要root權(quán)限連接的安全管理。幸運的是,主要的開放源代碼類Unix操作系統(tǒng)的軟件管理系統(tǒng)都應(yīng)該為你提供了自動處理功能。
當使用一個基于源代碼的軟件管理系統(tǒng)時,你可能需要確保安裝操作系統(tǒng)生成內(nèi)核的時間,F(xiàn)USE的安裝操作是正確的。以FreeBSD的Ports系統(tǒng)為例,你可以指定所有系統(tǒng)頭都應(yīng)在操作系統(tǒng)安裝過程中安裝。
一旦確認了系統(tǒng)中已經(jīng)安裝了FUSE和sshFS,安裝遠程文件系統(tǒng)就是一件容易令人難以置信的事情。實際上,只要一個mount命令(用于掛載一個本地文件系統(tǒng))和ssh命令(用于打開遠程計算機上的命令界面)的最簡單組合即可。
除了簡單易用外,sshFS還可以任意選擇子目錄來進行安裝,并且可以決定安裝的內(nèi)容。只要你擁有遠程系統(tǒng)給定目錄的ssh連接,就可以利用sshFS通過安全加密連接在本地進行安裝。
根據(jù)sshFS手冊,利用sshFS掛載遠程文件系統(tǒng)的命令是:
sshfs [user@]host:[dir] mountpoint [options]
讓我們看看一個簡單的例子。
艾倫在一臺主機名為unruly的FreeBSD服務(wù)器上有一個包含Ogg Vorbis格式音樂文件的文件夾,他希望可以從自己名為insectmonger的Debian筆記本計算機上直接訪問該文件夾。音樂文件所在的文件夾為/usr/home/alan/vorbis。該文件夾在筆記本計算機上位置,他希望是/home/alan/external。在兩臺機器上的用戶名是一樣的,“alan”。他使用的命令應(yīng)該是:
sshfs unruly:/usr/home/alan/vorbis /home/alan/external
一條簡單的命令就可以完成卸載,正如sshfs手冊指定頁中的說明,艾倫可以使用的命令是:
fusermount -u mountpoint
現(xiàn)在,他可以輸入:
fusermount -u /home/alan/external
他可以很容易地使用通常的umount命令來卸載文件系統(tǒng)分區(qū):
umount /home/alan/external
根據(jù)手冊中[user@]部分的語法示例,[user@]是sshfs命令的一部分,可以用來指定遠程計算機上的用戶帳戶,與訪問遠程文件系統(tǒng)需要“擁有一個單獨用戶名的帳戶”不同的是,你可以利用本地系統(tǒng)的用戶名來掛載文件系統(tǒng)。
命令語法示例中的[options]部分包括了sshfs手冊中描述的50多個選項——遠遠超過了一篇單獨文章可以解釋的范圍。其中最常用的選項有:
sshfs -h
該選項可以提供簡單的語法說明,如果你需要在使用sshFS命令前快速了解可用的選項的話。
sshfs [user@]host:[dir] mountpoint -p 2002
該選項可以容許你選擇其它的連接端口而不是默認的22號ssh端口,在ssh服務(wù)器必須與來訪問遠程文件系統(tǒng)配置為使用非標準端口的情況下非常有用。
sshfs [user@]host:[dir] mountpoint -C
利用- C選項,可以啟用ssh的壓縮功能。對互聯(lián)網(wǎng)之類的低帶寬網(wǎng)絡(luò)中的高流量需求,通過有效降低sshfs的掛載時間這樣可以加快遠程文件訪問的速度。
【編輯推薦】