首頁 > 軟體

vscode ssh遠端連線伺服器的思考淺析

2023-02-05 14:03:15

過往經驗總結

注:筆者寫本文的目的不是完整細緻地描述連線的全過程,而是記錄當中遇到的現象、問題,及為什麼會產生這個問題的分析。所以部分過程會省略,或者預設讀者都是很熟悉各種操作的。

使用ssh遠端連線,要獲知目標主機的ip地址,並使用正確的密碼或金鑰。

筆者之前曾嘗試過用不同的工具來連線伺服器。 其中,

  • putty和xshell本身就是支援多種連線協定的連線工具。 用它們連線很方便。輸入密碼就是嘗試建立連線時輸入使用者名稱之後再輸;輸入金鑰就是要找到該工具對應的設定入口。一些字型大小、傳送請求時長之類的引數設定也可以直接在工具介面找到。
  • idea之類的IDE現在也有了remote ssh 的功能。這個ssh是IDE自帶的。 它連線簡單,傻瓜式操作。只需要在新建專案介面,點選遠端連線的按鈕,一步步往下就成功了。 但它有個特點,就是有點卡。這和它處理檔案的機制有關係,後面會細說。

關於vscode

其實vscode本質上只是一個編輯器,它強大的功能依託於各種可安裝的外掛。 很多外掛本質上就是將 已有 的功能在vscode中以另一種形式展現出來。

舉個例子,小明還沒有在本機安裝git,那他安裝的和git有關的外掛是不會生效的。同理,vscode的ssh本質上是將電腦已有的ssh服務在vscode中呈現。如果連線不上,要麼是外掛本身有問題(基本排除,真有問題應該很多人給差評了),要麼是本機的ssh服務有問題,要麼是引數設定有問題。

與ssh有關的兩個組態檔

.ssh/config 這是對單個ssh連線的設定資訊,格式可參照如下:

Host <連線的主機名(可以自己取>
  HostName <主機ip地址>
  User <連線的使用者>
  IdentityFile <認證檔案,也就是金鑰檔案的路徑>

settings.json 這是對vscode的全域性設定,其中也可以加入ssh相關的內容,比如設定使用的ssh服務路徑。

報錯解決:ssh連線時提示管道不存在

問題

網上說是win10自帶的openssh的問題。

我在cmd上嘗試過直接使用該工具,發現會提示私鑰檔案許可權太大,故禁止連線。

由此確認是本機ssh服務的問題

解決方案

方案一:使用git中的ssh作為替代

  • 找到該ssh的位置:在git中用 whereis ssh命令。(windows則進入git-bash來敲命令)
  • settings.json中加入如下一行: "remote.SSH.path":<git路徑+git中ssh路徑的拼接體>,

儲存後重啟vscode。

方案二:修改私鑰檔案許可權

網上有部落格文章介紹過具體操作,總結來說就是滑鼠點按鈕一步步找到入口然後設定目標主機對檔案的存取許可權,同時禁止其他使用者的許可權。不過我沒有用這種方式,因為我對windows自帶的openssh其實是不太放心的。

各方式遠端連線專案檔案的效能對比

現象

  • 同時開啟多個putty/xshell終端以顯示專案檔案沒問題
  • 同時用多個vscode視窗開啟專案也沒問題
  • 同時用IDE開啟兩個及以上專案檔案會導致伺服器宕機
  • 一個ide,再來一個vscode也不行

原因分析

  • IDE比較耗效能,vscode更輕量
  • 兩者對檔案的同步方式不同。 當連線中斷時,vscode上顯示的當前專案檔案也沒有了,但是idea上的還在,只是改了之後不能同步到遠端主機了。這說明,vscode只是將遠端終端上的內容換種形式呈現出來,而idea則是在本地也備份了一份檔案。

以上就是vscode ssh遠端連線伺服器的思考淺析的詳細內容,更多關於vscode ssh遠端連線伺服器的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com