在linux系統下使用sshfs映射網路地址
- 2019 年 11 月 20 日
- 筆記
事出有因
最近在用遠程的gpu伺服器做開發,把所有的workspace般到伺服器上。但這樣會造成文件的編輯問題,因為遠程的伺服器沒有桌面,用命令行可以藉助vim寫單個文件,管理整個文件夾或者工程有點力不從心。當然,主要是不想費太多功夫死磕vim。
可行方案
為了應對這個困難,我先後採取了幾種措施:
- 學習linux下的vim命令,安裝vim插件。這個推薦一個開源項目, https://github.com/BillWang139967/Vim.git 這個項目可以傻瓜式安裝,然後享受vim豐富的插件帶來的福利。差不多把vim做成了IDE,可以程式碼補全。
- 使用winscp(當時自己用的還是win),它有個GUI介面,可以直接滑鼠點文件,用本地編輯器打開,可以解決程式碼自動補全的問題。但是閱讀程式碼時跨文件的函數調轉、利用vscode做git的操作都不能實現。
- 採用某種類似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: