vscode?ssh遠程連接服務器的思考淺析
過往經(jīng)驗總結(jié)
注:筆者寫本文的目的不是完整細致地描述連接的全過程,而是記錄當中遇到的現(xiàn)象、問題,及為什么會產(chǎn)生這個問題的分析。所以部分過程會省略,或者默認讀者都是很熟悉各種操作的。
使用ssh遠程連接,要獲知目標主機的ip地址,并使用正確的密碼或密鑰。
筆者之前曾嘗試過用不同的工具來連接服務器。 其中,
- putty和xshell本身就是支持多種連接協(xié)議的連接工具。 用它們連接很方便。輸入密碼就是嘗試建立連接時輸入用戶名之后再輸;輸入密鑰就是要找到該工具對應的配置入口。一些字體大小、發(fā)送請求時長之類的參數(shù)設置也可以直接在工具界面找到。
- idea之類的IDE現(xiàn)在也有了remote ssh 的功能。這個ssh是IDE自帶的。 它連接簡單,傻瓜式操作。只需要在
新建項目界面,點擊遠程連接的按鈕,一步步往下就成功了。 但它有個特點,就是有點卡。這和它處理文件的機制有關系,后面會細說。
關于vscode
其實vscode本質(zhì)上只是一個編輯器,它強大的功能依托于各種可安裝的插件。 很多插件本質(zhì)上就是將 已有 的功能在vscode中以另一種形式展現(xiàn)出來。
舉個例子,小明還沒有在本機安裝git,那他安裝的和git有關的插件是不會生效的。同理,vscode的ssh本質(zhì)上是將電腦已有的ssh服務在vscode中呈現(xiàn)。如果連接不上,要么是插件本身有問題(基本排除,真有問題應該很多人給差評了),要么是本機的ssh服務有問題,要么是參數(shù)設置有問題。
與ssh有關的兩個配置文件
.ssh/config 這是對單個ssh連接的配置信息,格式可參照如下:
Host <連接的主機名(可以自己取>
HostName <主機ip地址>
User <連接的用戶>
IdentityFile <認證文件,也就是密鑰文件的路徑>
settings.json 這是對vscode的全局配置,其中也可以加入ssh相關的內(nèi)容,比如設置使用的ssh服務路徑。
報錯解決:ssh連接時提示管道不存在
問題
網(wǎng)上說是win10自帶的openssh的問題。
我在cmd上嘗試過直接使用該工具,發(fā)現(xiàn)會提示私鑰文件權(quán)限太大,故禁止連接。
由此確認是本機ssh服務的問題。
解決方案
方案一:使用git中的ssh作為替代
- 找到該ssh的位置:在git中用
whereis ssh命令。(windows則進入git-bash來敲命令) - 在
settings.json中加入如下一行:"remote.SSH.path":<git路徑+git中ssh路徑的拼接體>,
保存后重啟vscode。
方案二:修改私鑰文件權(quán)限
網(wǎng)上有博客文章介紹過具體操作,總結(jié)來說就是鼠標點按鈕一步步找到入口然后設置目標主機對文件的訪問權(quán)限,同時禁止其他用戶的權(quán)限。不過我沒有用這種方式,因為我對windows自帶的openssh其實是不太放心的。
各方式遠程連接項目文件的性能對比
現(xiàn)象
- 同時打開多個putty/xshell終端以顯示項目文件沒問題
- 同時用多個vscode窗口打開項目也沒問題
- 同時用IDE打開兩個及以上項目文件會導致服務器死機
- 一個ide,再來一個vscode也不行
原因分析
- IDE比較耗性能,vscode更輕量
- 兩者對文件的同步方式不同。 當連接中斷時,vscode上顯示的當前項目文件也沒有了,但是idea上的還在,只是改了之后不能同步到遠程主機了。這說明,vscode只是將遠程終端上的內(nèi)容換種形式呈現(xiàn)出來,而idea則是在本地也備份了一份文件。
以上就是vscode ssh遠程連接服務器的思考淺析的詳細內(nèi)容,更多關于vscode ssh遠程連接服務器的資料請關注腳本之家其它相關文章!

