Ubuntu下使用sshfs掛載遠程目錄到本地(和Windows掛載盤一樣)

來源:互聯網
上載者:User

標籤:

訪問區域網路中其他Ubuntu機器,在不同機器間跳來跳去,很是麻煩,如果能夠把遠程目錄映射到本地無疑會大大方面使用,就像Windows下的網路映射盤一樣。在Linux的世界無疑也會有這種機制和方式,最近在使用的過程中選擇了sshfs這個工具來達到把遠程目錄映射到本地的功能。

SSHFS可在本地安裝的檔案系統中,通過SSH獲得所有加密的通訊優勢。使用sshfs可以把遠程目錄直接映射到本地,無需修改遠程機器的設定,僅要求有ssh串連的許可權(ssh都沒有的話,還能幹啥?)

官網地址: http://fuse.sourceforge.net/sshfs.html

一、SSHFS for Ubuntu

首先簡單介紹一下SSHF。

關於SSH的介紹和安裝使用可參考:SSH簡介及工作機制以及Ubuntu環境下SSH的安裝及使用這兩篇文章。

SSH 是一個強大且安全的工具,我們除了可以用它來遠端管理主機外,還可以通過它建立 SSH tunnel作 Proxy用,遠程傳輸檔案等等。而這裡我想要介紹另外一個功能,那就是結合 sshfs 這個工具可以把遠程主機的檔案系統映射到本地主機上,透過 SSH 把遠程檔案系統掛載到本機上,這樣我們可以不必使用 scp 工具就可以做到直接複製及刪除遠程主機的檔案了,就像操作本地磁碟一樣方便。

SSH是串連兩台獨立電腦,進行遠端控制任務的受信任的方式。

SSHFS最炫的地方在於可在本地安裝的檔案系統中,通過SSH獲得所有加密的通訊優勢。sshfs 是基於 FUSE 構建的 SSH 檔案系統用戶端程式,通過它遠程主機的配置無需作任何改變,就可以透過 SSH 協議來掛載遠程檔案系統了,非常方便及安全。

 

二、Ubuntu 上安裝sshfs

Ubuntu源中已經包含了sshfs,以及所需的fuse包,直接安裝即可:

 

[html] view plain copy 
  1. sudo apt-get install sshfs  



 

安裝的時候會自動建立使用者組fuse,要使用sshfs的使用者需要先加到這個使用者組裡才行(記得完成後還要重新登入),不然會沒有許可權執行fusermount:

fuse: failed to exec fusermount: Permission denied

 

三、掛載遠程檔案系統/目錄

掛載的一般格式為:

 

[html] view plain copy 
  1. sudo sshfs {{user id}}@{{server hostname}}:{{desiredremote share}} {{desired local mount point}} -o idmap=user -o allow_other -ouid={{local user id}} -o gid={{local group id}}  



 

其中重點選項:

-o transform_symlinks 表示轉換絕對連結符號為相對連結符號

-o follow_symlinks 沿用伺服器上的連結符號

-C 壓縮,或者-o compression=yes

-o reconnect 自動重連

-o cache=yes

-o allow_other

掛載格式看起來比較頭暈,這裡結合我的使用給出一個簡潔直觀的格式:

 

[html] view plain copy 
  1. sshfs -o transform_symlinks -ofollow_symlinks  [email protected]: [dir]mountpoint  



 

執行個體如下:

 

[html] view plain copy 
  1. sshfs –o cache=yes,allow_other [email protected]:/home/user/code home/user/code  



 

說明:

1、 串連的時候可能需要管理員權限,在掛載命令前sudo即可。

2、更多參數請 man sshfs ,如果碰到其它問題請參考官方的 FAQ 。

3、如果想不輸入密碼的話,可以使用 SSH key 認證方式。

4、執行命令後 Ubuntu 會自動在案頭上顯示掛載的 sshfs 檔案系統盤,現在你就可以像操作本地磁碟一樣操作這個映射的磁碟了。

四、卸載

fusemount –u /home/user/code

 

五、sshfs選項 [html] view plain copy 
  1. general options:  
  2.     -o opt,[opt...]        mount options  
  3.     -h   --help            print help  
  4.     -V   --version         print version  
  5.   
  6. SSHFS options:  
  7.     -p PORT                equivalent to ‘-o port=PORT‘  
  8.     -C                     equivalent to ‘-o compression=yes‘ #啟用壓縮,建議配上  
  9.     -F ssh_configfile      specifies alternative ssh configuration file #使用非預設的ssh設定檔  
  10.     -1                     equivalent to ‘-o ssh_protocol=1‘ #不要用啊  
  11.     -o reconnect           reconnect to server               #自動重連  
  12.     -o delay_connect       delay connection to server  
  13.     -o sshfs_sync          synchronous writes  
  14.     -o no_readahead        synchronous reads (no speculative readahead) #提前預讀  
  15.     -o sshfs_debug         print some debugging information  
  16.     -o cache=BOOL          enable caching {yes,no} (default: yes) #能緩衝目錄結構之類的資訊  
  17.     -o cache_timeout=N     sets timeout for caches in seconds (default: 20)  
  18.     -o cache_X_timeout=N   sets timeout for {stat,dir,link} cache  
  19.     -o workaround=LIST     colon separated list of workarounds  
  20.              none             no workarounds enabled  
  21.              all              all workarounds enabled  
  22.              [no]rename       fix renaming to existing file (default: off)  
  23.              [no]nodelaysrv   set nodelay tcp flag in sshd (default: off)  
  24.              [no]truncate     fix truncate for old servers (default: off)  
  25.              [no]buflimit     fix buffer fillup bug in server (default: on)  
  26.     -o idmap=TYPE          user/group ID mapping, possible types are:  #檔案許可權uid/gid映射關係  
  27.              none             no translation of the ID space (default)  
  28.              user             only translate UID of connecting user  
  29.     -o ssh_command=CMD     execute CMD instead of ‘ssh‘  
  30.     -o ssh_protocol=N      ssh protocol to use (default: 2) #肯定要2的  
  31.     -o sftp_server=SERV    path to sftp server or subsystem (default: sftp)  
  32.     -o directport=PORT     directly connect to PORT bypassing ssh  
  33.     -o transform_symlinks  transform absolute symlinks to relative  
  34.     -o follow_symlinks     follow symlinks on the server  
  35.     -o no_check_root       don‘t check for existence of ‘dir‘ on server  
  36.     -o password_stdin      read password from stdin (only for pam_mount)  
  37.     -o SSHOPT=VAL          ssh options (see man ssh_config)  
  38.   
  39. Module options:  
  40.   
  41. [subdir]  
  42.     -o subdir=DIR       prepend this directory to all paths (mandatory)  
  43.     -o [no]rellinks     transform absolute symlinks to relative  
  44.   
  45. [iconv]  
  46.     #字元集轉換,對我這種UTF8控,預設已經是最好的  
  47.     -o from_code=CHARSET   original encoding of file names (default: UTF-8)  
  48.     -o to_code=CHARSET      new encoding of the file names (default: UTF-8)  
六、總結:在Ubuntu環境下,直接存取網路上其他電腦的檔案時由於許可權問題,會出現很多問題;最近特別突出的是遠程電腦和本地的檔案比較,檔案夾比較的時候,不能使用工具,極度不方便。使用sshsf將遠程電腦上的檔案夾掛載到本地以後,不但可以很方便的訪問遠程檔案而且也能使用比較工具將遠程檔案/檔案夾和本地檔案/檔案夾進行比較。 比如使用 beyond Compare時不能將遠程檔案、檔案夾和本地的進行比較。掛載遠程檔案夾之後,此問題迎刃而解。 http://blog.csdn.net/netwalk/article/details/12952719

Ubuntu下使用sshfs掛載遠程目錄到本地(和Windows掛載盤一樣)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.