利用SSH Filesystem實現遠程文件系統

     遠程文件系統的訪問有不少種不一樣的實現方式,一些常見的鏈接方式比其它特定狀況下的更有用。最著名的一個例子就是微軟的通用互聯網文件系統(CIFS),它能夠允許微軟Windows「映射網絡驅動器」並利用資源管理器對網絡進行「瀏覽」。另外一個是最先由太陽計算機系統開發的網絡文件系統(NFS),做爲美國電話電報公司開發的UNIX系統配置已經有15年的歷史了。儘管還存在幾十種其餘的選擇,但這兩種系統佔據了網絡文件系統的主流。NFS 默認要在擁有 root 權限下才能掛載 (mount) 進來,另外則是使用 NFS 使用 RPC ( portmap 或 rpcbind ) 服務來作端口映射 (Port Mapping),也表明防火牆也要多一層設置,爲了安全總有那麼一點不方便。對於安裝了Openssh的系統來講,實際上這包含了幾乎全部的開源類Unix操做系統,SSH Filesystem—做爲可驗證的方便安全的網絡文件系統,是用來訪問遠程計算機上存儲數據的完美選擇,甚至於連在 Windows 下均可以自由掛載遠程 Linux 帳號下的任意一個文件夾,真的很是方便。html

     SSH Filesystem是基於ssh的,因此須要在客戶端計算機上安裝和使用sshFS的話,就須要安裝Openssh。幾乎全部的Linux主要發行版本和BSD Unix操做系統,在默認配置下都已經安裝了Openssh的,因此你不會須要單獨安裝它。此外,服務器端—你但願可以從本地客戶端系統訪問的計算機中的文件系統—須要運行Openssh服務器進程。git

SSH Filesystem也是基於FUSE,也就是所謂的「用戶空間文件系統」。FUSE在類Unix系統中提供了一個API,能夠用於創建高級別的文件系統,而且能夠實現不須要root權限鏈接的安全管理。幸運的是,主要的開放源代碼類Unix操做系統的軟件管理系統都應該爲你提供了自動處理功能。github

如何在 Linux 下經過 sshfs 掛載遠程目錄windows

1. 安裝 sshfs 安全

CentOS 6.3 ( 在CentOS 下,使用者必須加入 fuse組才能使用 FUSE 功能 ) 服務器

yum install fuse-sshfs網絡

usermod -a -G fuse usernameapp

2. 創建掛載點 (也就是要從遠程對應到本機哪一個文件夾) ssh

請注意: 若是用通常使用者身分執行時,該掛載點目錄的擁有者必須爲使用者本身! 工具

sshfs username@hostname:/path/to/folder /path/to/local/folder

3. 卸載 sshfs 掛載

fusermount -u /path/to/local/folder

下面演示Azure上2臺CentOS主機上加載sshfs文件

[azureuser@mono ~]$ sudo yum install fuse-sshfs

[sudo] password for azureuser:

Not using downloaded repomd.xml because it is older than what we have:

Current : Fri Apr 26 20:58:04 2013

Downloaded: Fri Apr 26 20:48:40 2013

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package fuse-sshfs.x86_64 0:2.4-1.el6 will be installed

--> Processing Dependency: fuse >= 2.2 for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2(FUSE_2.7)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2(FUSE_2.6)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2(FUSE_2.5)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2(FUSE_2.4)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2(FUSE_2.2)(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Processing Dependency: libfuse.so.2()(64bit) for package: fuse-sshfs-2.4-1.el6.x86_64

--> Running transaction check

---> Package fuse.x86_64 0:2.8.3-4.el6 will be installed

---> Package fuse-libs.x86_64 0:2.8.3-4.el6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package Arch Version Repository Size

================================================================================

Installing:

fuse-sshfs x86_64 2.4-1.el6 epel 52 k

Installing for dependencies:

fuse x86_64 2.8.3-4.el6 base 71 k

fuse-libs x86_64 2.8.3-4.el6 base 74 k

Transaction Summary

================================================================================

Install 3 Package(s)

Total download size: 198 k

Installed size: 553 k

Is this ok [y/N]: y

Downloading Packages:

(1/3): fuse-2.8.3-4.el6.x86_64.rpm | 71 kB 00:00

(2/3): fuse-libs-2.8.3-4.el6.x86_64.rpm | 74 kB 00:00

(3/3): fuse-sshfs-2.4-1.el6.x86_64.rpm | 52 kB 00:00

--------------------------------------------------------------------------------

Total 236 kB/s | 198 kB 00:00

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

Importing GPG key 0x0608B895:

Userid : EPEL (6) <epel@fedoraproject.org>

Package: epel-release-6-8.noarch (installed)

From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

Is this ok [y/N]: y

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : fuse-2.8.3-4.el6.x86_64 1/3

Installing : fuse-libs-2.8.3-4.el6.x86_64 2/3

Installing : fuse-sshfs-2.4-1.el6.x86_64 3/3

Verifying : fuse-sshfs-2.4-1.el6.x86_64 1/3

Verifying : fuse-libs-2.8.3-4.el6.x86_64 2/3

Verifying : fuse-2.8.3-4.el6.x86_64 3/3

Installed:

fuse-sshfs.x86_64 0:2.4-1.el6

Dependency Installed:

fuse.x86_64 0:2.8.3-4.el6 fuse-libs.x86_64 0:2.8.3-4.el6

Complete!

[azureuser@mono ~]$ sudo usermod -a -G fuse azureuser

[azureuser@mono ~]$ sudo mkdir /usr/local/youhaoda

[azureuser@mono ~]$ sudo sshfs azureuser@youhaoda.cloudapp.net:/usr/local/src /usr/local/youhaoda

The authenticity of host 'youhaoda.cloudapp.net (168.63.212.151)' can't be established.

RSA key fingerprint is c7:fb:53:84:ac:13:74:0b:08:55:b4:06:34:57:22:7c.

Are you sure you want to continue connecting (yes/no)? y

Please type 'yes' or 'no': yes

azureuser@youhaoda.cloudapp.net's password:

[azureuser@mono ~]$ ls /usr/local/youhaoda -l

ls: ÎÞ·¨·ÃÎÊ/usr/local/youhaoda: ȨÏÞ²»¹»

[azureuser@mono ~]$ sudo ls /usr/local/youhaoda -l

×ÜÓÃÁ¿ 82004

drwxr-xr-x. 1 root root 4096 8ÔÂ 2 17:21 jexus-5.4.3

-rw-r--r--. 1 root root 179047 8ÔÂ 6 07:44 jexus-5.4.3.tar.gz

drwxrwxrwx. 1 1000 users 4096 9ÔÂ 21 03:21 libgdiplus-2.10

-rw-r--r--. 1 root root 1962898 2ÔÂ 14 2011 libgdiplus-2.10.tar.bz2

drwxr-xr-x. 1 1000 users 4096 9ÔÂ 21 03:27 mono-3.2.3

-rw-r--r--. 1 root root 81810387 9ÔÂ 17 23:08 mono-3.2.3.tar.bz2

如何在 Windows 下經過 sshfs 加載遠程目錄

1. 安裝 sshfs 相關軟件

安裝步驟可參考文章 SSHFS in Windows。目前 Dokan library ( v0.6.0 ) 可支持 Windows 8 操做系統,但你必須在應用程序啓動時以系統管理員身分執行,才能夠正常安裝!

image

2. 加載SSHFS 網絡驅動器

運行 Sshfs Manager 以後,會在系統裏出現一個黃色圖示

image

打開Sshfs Manager,點選 Add 按鈕,並配置 SSH 鏈接信息與磁盤名稱 (Drive Name) 與 驅動器號 (Drive Letter)

image

mount後的效果以下 :

image

相關連接:

相關文章
相關標籤/搜索