創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2019年7月6日 星期六

使用SSHFS掛載遠端Ubuntu機器的資料夾

摘要

過去曾在〈WinSCP alternative〉與〈在內部網路的Ubuntu機器之間使用NFS存取資料〉提到幾種在Linux機器之間傳輸檔案的方式,但在某些程度上這些方式還是有些不方便,而SSHFS在設定與使用上都相對的較為簡單與方便,安全性也佳,而且也適合Windows機器連線進來使用。

以下僅假定在內部網路使用,也只談論Ubuntu MATE 18.04安裝與使用SSHFS連線另一部Ubuntu機器的做法,不會涉及Windows方面的使用,這方面可見後面的參考與連結。

SSHFS[1, 2]的使用情況有點類似Windows上由一部機器提供資料夾分享,讓另一部Windows機器連接網路磁碟機進來取得檔案,不同的是走不一樣但較安全的協定。

為方便說明,以下把要提供資料讓別部機器連線進來的機器稱為A,而連線進來存取資料的機器稱為B,也就是A擔任檔案服務器的角色,而B是A的用戶端機器。

SSHFS透過SSH協定來連線遠端機器,所以A必須先安裝好OpenSSH Server才能讓B以SSH用戶端程式連線進來。

安裝與設置OpenSSH Server

安裝很簡單:

$ sudo apt install openssh-server
如果在內部的網路環境使用,即使不做任何設置(即採用設置值)也可正常使用,這裡純粹為了方便說明就只調整幾項設定。

先備份好原有的設置檔,然後以編輯器開啟設置檔:

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
$ sudo chmod a-w /etc/ssh/sshd_config.original
$ sudo vi /etc/ssh/sshd_config
這裡用vi編輯設置檔,讀者可改成慣用的編輯器,修改/新增其中幾項,如:
  • Port 2022
  • PermitRootLogin no
  • Allowusers yourname
 Allowusers可新增在設置檔的最後面,若要指定多個使用者名稱,中間以半形空格隔開。也可以用AllowGoups,只允許特定群組。

設置檔詳細說明請見:

$ man sshd_config

修改完存檔,記得讓sshd重新載入新設定值:

$ sudo systemctl reload sshd
以上只是簡單的設置,如果該機器要放在公眾存取網路上,最好做嚴謹的設置。

sshfs用戶端程式的安裝與使用

在B機器安裝sshfs

$ sudo apt install sshfs
sshfs的使用也相當簡單,命令形式像:

sshfs [user@]host:[dir] mountpoint [options]
  • 建議以一般使用者(非root)來執行。掛載點mountpoint必須由使用者擁有。
  • 若省略user@,就用本機目前用的username,也就是在遠端機器上也有個與本機目前用相同的username。
  • 若省略dir,就掛載遠端的家目錄。
  • 就如同ssh的使用,在第一次連線時會先收到一個連線加密用的公鑰,輸入yes後才能繼續連線。在必要時會要你輸入(遠端機器的)密碼。
先準備好一個掛載用的資料夾,如:

$ mkdir ~/mnt
再來,以2022埠連線掛載遠端機器的家目錄到~/mnt:

$ sshfs 192.168.1.112: ~/mnt -p 2022

2020-10-3補充:與遠端機器第一次連線後,本機中會存放該機器的key在 ~/.ssh/known_hosts 中。如果往後這部遠端機器重裝,它的key會改變,想再與它連線,要先把本機存的key或前述檔案刪掉,否則key不對會被拒絕連線。

成功後,若在Caja(即檔案總管)看~/mnt,其中即遠端機器家目錄裡的東西。或者也可用mount查看掛載的情況。

卸載時請用fusermount,如:


$ fusermount -u ~/mnt

在BSD與macOS則用umount。在Ubuntu上若非得要用umount,要前置sudo。

也可以利用Caja在mnt上的快捷選單,點“卸載”命令,如下圖。如果選單上沒看到,往下捲動滑鼠輪或按鍵盤的向下鍵。

sshfs的圖形前端

如果非得在Linux上用sshfs的圖形前端,請見[3, 4]。自己懶得用,所以沒用過。

Windows上的使用

自己沒試過,較少用Windows。

在Windows上可用DokanWinSSHFS有圖形介面的用戶端程式連上遠端機器,請見[5, 6]。[6]也提及了macOS上的使用。

若想在Windows上安裝OpenSSH Server,請見[7, 8]。

參考與連結

  1. https://zh.wikipedia.org/wiki/SSHFS
  2. https://en.wikipedia.org/wiki/SSHFS
  3. https://www.linuxquestions.org/questions/linux-software-2/sshfs-gui-4175606305/
  4. http://howto.blbosti.com/2010/09/mount-a-remote-ssh-folder-in-ubuntu-cmd-and-gui/
  5. https://wsgzao.github.io/post/winsshfs/
  6. https://blog.gtwang.org/linux/sshfs-ssh-linux-windows-mac-os-x/
  7. https://winscp.net/eng/docs/guide_windows_openssh_server
  8. https://docs.microsoft.com/zh-tw/windows-server/administration/openssh/openssh_install_firstuse

沒有留言:

張貼留言