Windows 下通過 SSHFS 使用 SSH 協議掛載遠程服務器目錄


原文鏈接:https://blog.xieqiaokang.com/posts/505416489.html

一般情況下,我們可以通過 samba 協議掛載遠程服務器上的文件夾。然而,並非所有服務器都開放了 samba 端口,特別是在外網情況下,通常只會開放一個 ssh 端口。而 sshfs 是通過 ssh 協議模擬的方式,實現將遠程服務器上的硬盤掛載到本地。也就是說,只要你的服務器支持ssh連接,你就可以將服務器的硬盤掛載到本地,然后采用本地的方式來操作硬盤里的文件。

目前 sshfs 的實現有兩種方案,其中第一種方案 winfsp + sshfs-win,目前還在持續維護更新,更加建議使用;第二種 win-sshfs + dokan 已經多年未更新(win-sshfs 最近一次更新是 2016 年),也不如第一種高效。

方式一:winfsp + sshfs-win (推薦)

下載

直接前往 github 對應項目的 release 中下載最新版本即可,需注意 sshfs-win 對 winfsp 的最低版本依賴(下載最新版本一般即可滿足),另外有GUI(用戶圖形操作界面)可供下載,建議下載。

快速使用

可使用GUI圖形界面(方式A),亦可手動掛載(方式B),建議使用GUI圖形界面。

方式A:使用GUI(推薦)

新建連接

安裝好上述3個軟件后,打開 GUI 界面如下,點擊 Add Connection

SSHFS-Win Manager GUI 主界面

依次填寫每一項內容:

  • NAME:給遠程服務器取個名字
  • Connection:遠程服務器配置,如IP、端口、遠程用戶名、驗證方式(密碼,或密鑰[參考:SSH密鑰管理及免密碼登陸])
  • Remote:遠程目錄配置,掛載后將成為本地對應盤符的根目錄
  • Local:本地盤符設置(注意不要與現有盤符沖突)

示例如下:

添加連接

點擊 Save 保存。

掛在遠程目錄

在主界面中點擊連接按鈕,即可將遠程目錄掛在到本地:

添加新連接后的主界面

此時遠程目錄已經出現在了本地資源管理器中,未出現可刷新一下,或直接點擊GUI主界面連接按鈕左邊的打開文件夾按鈕即可進入目錄。

本地掛載成功

長期使用建議在主界面的設置中打開開機自啟

打開開機啟動

方式B:手動掛載

掛載路徑

1. SSH 使用默認端口(22)

此時,對應的 ssh 登陸命令為 ssh username@remote_ip,那么使用 sshfs-win 掛載遠程服務器根目錄和 home 目錄的地址為:

# 根目錄
\\sshfs.r\username@remote_ip\

# home 目錄
\\sshfs\username@remote_ip\
# 或者 \\sshfs.r\username@remote_ip\home\username\

例如:\\sshfs.r\xieqk@10.168.9.87\,注意路徑里面的分隔符為 windows 使用的反斜杠 \

2. SSH 使用其它端口(外網端口轉發連接內網服務器)

此時,ssh 登陸命令為 ssh -p port username@remote_ip,對應的 sshfs-win 掛載遠程服務器根目錄和 home 目錄的地址在之前的 remote_ip 后加上 !port 即可:

# 根目錄
\\sshfs.r\username@remote_ip!port\

# home 目錄
\\sshfs\username@remote_ip!port\
# 或者:\\sshfs.r\username@remote_ip!port\home\username\

例如:\\sshfs.r\xieqk@168.10.9.87!34567\

登陸掛載遠程目錄

將上述 sshfs 路徑輸入 windows 文件資源管理器地址欄,輸入密碼即可進入。(注意:彈窗中的賬號顯示的為 windows 的本地賬號,不用修改。遠程服務器的用戶名已經包含在之前的 sshfs 路徑之中,所以此處只需正常輸入遠程用戶對應的密碼即可。)

對於常用的遠程目錄,建議通過 映射網絡驅動器 長期掛載於本地。

映射網絡驅動器

映射網絡驅動器 中,可自行分配驅動器盤號,然后在 文件夾 處輸入上述 sshfs 路徑,點擊完成后在彈出的登錄框處輸入密碼即可完成掛載。

輸入 sshfs 路徑

之后,可在 windows 文件瀏覽器的網絡位置中看到已經掛載的所有遠程目錄:

本地掛載成功

詳細參數(可跳過,需要時再查看)

sshfs-win 具體語法形式如下,其中 [] 中的內容為選填項,若為默認值可不填:

\\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.r\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.k\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
  • REMUSER: 即 remote user,指 SSH 登陸遠程主機時的用戶名。

  • HOST:遠程服務器,如 IP 地址,DNS 服務器名稱 或 DNS 服務器 IP 地址

  • PORT:SSH 登陸所使用的端口號 (選填,默認為 SSH(22) 端口).

  • PATH:進入的遠程服務器路徑,可按照如下設置:

    • 前綴 sshfs 對應為 HOST:~REMUSER/PATH,即遠程服務器上相對於該用戶 home 目錄的相對路徑:/home/remote_user/PATH
    • 前綴 sshfs.r 對應為 HOST:/PATH 即遠程服務器上相對於根(root)目錄的路徑:/PATH
    • 前綴 sshfs.k 與第一項相同,對應為 HOST:~REMUSER/PATH,但它使用 Windows 本地當前用戶位於 %USERPROFILE%/.ssh/id_rsa 下的 SSH 密鑰進行認證(需進行遠程服務器配置,可參靠SSH 密鑰管理及免密碼登陸),不需要輸入密碼。(備注:使用前兩項連接時,windows 也會提醒記住密碼,所以只需要第一次輸入密碼並記住即可)
  • LOCUSER windows本地用戶名,可不填。

方式二:win-sshfs + Dokan(舊,不推薦)

下載

win-sshfs 依賴 Dokan,所以先安裝 Dokan 再正常安裝 win-sshfs 即可:

使用

打開win-sshfs,點擊Add,在界面輸入要鏈接的服務器的地址、端口號和用戶名密碼等信息,並設置好要掛載的目錄,點擊save,在確保可以通過ssh鏈接的情況下,點擊mount,就可以將該目錄掛載到本地了,如下圖所示:

win-sshfs 配置

查看我的電腦,發現在 設備和驅動器 中多了一個存儲設備(與方式一顯示在網絡位置中不同),如圖所示:

本地掛載成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM