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