在linux系統下使用sshfs映射網路地址

  • 2019 年 11 月 20 日
  • 筆記

事出有因

最近在用遠程的gpu伺服器做開發,把所有的workspace般到伺服器上。但這樣會造成文件的編輯問題,因為遠程的伺服器沒有桌面,用命令行可以藉助vim寫單個文件,管理整個文件夾或者工程有點力不從心。當然,主要是不想費太多功夫死磕vim。

可行方案

為了應對這個困難,我先後採取了幾種措施:

  1. 學習linux下的vim命令,安裝vim插件。這個推薦一個開源項目, https://github.com/BillWang139967/Vim.git 這個項目可以傻瓜式安裝,然後享受vim豐富的插件帶來的福利。差不多把vim做成了IDE,可以程式碼補全。
  2. 使用winscp(當時自己用的還是win),它有個GUI介面,可以直接滑鼠點文件,用本地編輯器打開,可以解決程式碼自動補全的問題。但是閱讀程式碼時跨文件的函數調轉、利用vscode做git的操作都不能實現。
  3. 採用某種類似nfs的機制,把遠程目錄映射到本地,可以一舉解決以上問題。

網路地址映射

其實最難的地方在於找一個不需要在伺服器端安裝軟體的方案,因為伺服器我沒有sudo許可權。後來就找到了sshfs這款。

原理很簡單,就是一個基於ssh的文件傳輸協議,只要伺服器可以ssh登陸就可以。

在centos上的安裝過程如下:

yum install -y epel-release    yum -y install fuse-sshfs    sshfs -o rw your_name@host_name_or_ip_add:/remote_dir /localdir -p your_ssh_port

然後就可以愉快地寫程式碼了。

之前花了點時間,當時並不知道軟體名稱,一直在嘗試yum install sshfs,後來就在github上找源程式碼編譯,而編譯又各種報錯。

Reference:

  1. https://blog.csdn.net/sunny05296/article/details/77722081