vscode?ssh遠(yuǎn)程連接服務(wù)器的思考淺析
過往經(jīng)驗(yàn)總結(jié)
注:筆者寫本文的目的不是完整細(xì)致地描述連接的全過程,而是記錄當(dāng)中遇到的現(xiàn)象、問題,及為什么會(huì)產(chǎn)生這個(gè)問題的分析。所以部分過程會(huì)省略,或者默認(rèn)讀者都是很熟悉各種操作的。
使用ssh遠(yuǎn)程連接,要獲知目標(biāo)主機(jī)的ip地址,并使用正確的密碼或密鑰。
筆者之前曾嘗試過用不同的工具來連接服務(wù)器。 其中,
- putty和xshell本身就是支持多種連接協(xié)議的連接工具。 用它們連接很方便。輸入密碼就是嘗試建立連接時(shí)輸入用戶名之后再輸;輸入密鑰就是要找到該工具對(duì)應(yīng)的配置入口。一些字體大小、發(fā)送請(qǐng)求時(shí)長之類的參數(shù)設(shè)置也可以直接在工具界面找到。
- idea之類的IDE現(xiàn)在也有了remote ssh 的功能。這個(gè)ssh是IDE自帶的。 它連接簡單,傻瓜式操作。只需要在
新建項(xiàng)目界面,點(diǎn)擊遠(yuǎn)程連接的按鈕,一步步往下就成功了。 但它有個(gè)特點(diǎn),就是有點(diǎn)卡。這和它處理文件的機(jī)制有關(guān)系,后面會(huì)細(xì)說。
關(guān)于vscode
其實(shí)vscode本質(zhì)上只是一個(gè)編輯器,它強(qiáng)大的功能依托于各種可安裝的插件。 很多插件本質(zhì)上就是將 已有 的功能在vscode中以另一種形式展現(xiàn)出來。
舉個(gè)例子,小明還沒有在本機(jī)安裝git,那他安裝的和git有關(guān)的插件是不會(huì)生效的。同理,vscode的ssh本質(zhì)上是將電腦已有的ssh服務(wù)在vscode中呈現(xiàn)。如果連接不上,要么是插件本身有問題(基本排除,真有問題應(yīng)該很多人給差評(píng)了),要么是本機(jī)的ssh服務(wù)有問題,要么是參數(shù)設(shè)置有問題。
與ssh有關(guān)的兩個(gè)配置文件
.ssh/config 這是對(duì)單個(gè)ssh連接的配置信息,格式可參照如下:
Host <連接的主機(jī)名(可以自己取>
HostName <主機(jī)ip地址>
User <連接的用戶>
IdentityFile <認(rèn)證文件,也就是密鑰文件的路徑>
settings.json 這是對(duì)vscode的全局配置,其中也可以加入ssh相關(guān)的內(nèi)容,比如設(shè)置使用的ssh服務(wù)路徑。
報(bào)錯(cuò)解決:ssh連接時(shí)提示管道不存在
問題
網(wǎng)上說是win10自帶的openssh的問題。
我在cmd上嘗試過直接使用該工具,發(fā)現(xiàn)會(huì)提示私鑰文件權(quán)限太大,故禁止連接。
由此確認(rèn)是本機(jī)ssh服務(wù)的問題。
解決方案
方案一:使用git中的ssh作為替代
- 找到該ssh的位置:在git中用
whereis ssh命令。(windows則進(jìn)入git-bash來敲命令) - 在
settings.json中加入如下一行:"remote.SSH.path":<git路徑+git中ssh路徑的拼接體>,
保存后重啟vscode。
方案二:修改私鑰文件權(quán)限
網(wǎng)上有博客文章介紹過具體操作,總結(jié)來說就是鼠標(biāo)點(diǎn)按鈕一步步找到入口然后設(shè)置目標(biāo)主機(jī)對(duì)文件的訪問權(quán)限,同時(shí)禁止其他用戶的權(quán)限。不過我沒有用這種方式,因?yàn)槲覍?duì)windows自帶的openssh其實(shí)是不太放心的。
各方式遠(yuǎn)程連接項(xiàng)目文件的性能對(duì)比
現(xiàn)象
- 同時(shí)打開多個(gè)putty/xshell終端以顯示項(xiàng)目文件沒問題
- 同時(shí)用多個(gè)vscode窗口打開項(xiàng)目也沒問題
- 同時(shí)用IDE打開兩個(gè)及以上項(xiàng)目文件會(huì)導(dǎo)致服務(wù)器死機(jī)
- 一個(gè)ide,再來一個(gè)vscode也不行
原因分析
- IDE比較耗性能,vscode更輕量
- 兩者對(duì)文件的同步方式不同。 當(dāng)連接中斷時(shí),vscode上顯示的當(dāng)前項(xiàng)目文件也沒有了,但是idea上的還在,只是改了之后不能同步到遠(yuǎn)程主機(jī)了。這說明,vscode只是將遠(yuǎn)程終端上的內(nèi)容換種形式呈現(xiàn)出來,而idea則是在本地也備份了一份文件。
以上就是vscode ssh遠(yuǎn)程連接服務(wù)器的思考淺析的詳細(xì)內(nèi)容,更多關(guān)于vscode ssh遠(yuǎn)程連接服務(wù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- VSCode使用ssh密鑰免密遠(yuǎn)程登錄服務(wù)器的方法
- vscode使用remote-ssh免密連接服務(wù)器
- VSCODE使用ssh遠(yuǎn)程連接時(shí)啟動(dòng)服務(wù)器失敗問題及解決方法
- VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟
- open3d?通過vscode+ssh連接遠(yuǎn)程服務(wù)器將可視化界面本地顯示的問題
- vscode遠(yuǎn)程開發(fā)使用SSH遠(yuǎn)程連接服務(wù)器的方法「內(nèi)網(wǎng)穿透」
- vscode 多設(shè)備通過ssh登錄遠(yuǎn)程服務(wù)器免密登錄的解決方案
相關(guān)文章
IE 瀏覽器安全級(jí)別詳情及區(qū)別小結(jié)
排查問題時(shí),定位到可能和當(dāng)前瀏覽器的安全級(jí)別設(shè)置有關(guān),順便整理了下Windows 7下IE9安全級(jí)別的詳情內(nèi)容,及各安全級(jí)別下的默認(rèn)設(shè)置差異2016-01-01
Git基礎(chǔ)學(xué)習(xí)之tag標(biāo)簽操作詳解
標(biāo)簽對(duì)象(tag?object)?非常類似于一個(gè)提交對(duì)象,它包含一個(gè)標(biāo)簽創(chuàng)建者信息、一個(gè)日期、一段注釋信息,以及一個(gè)指針。本文主要介紹了Git標(biāo)簽tag的一些基礎(chǔ)操作,需要的可以參考一下2022-10-10
全網(wǎng)最詳細(xì)的vscode基礎(chǔ)教程
vscode全稱為visual studio code,是微軟旗下一款非常優(yōu)秀的跨平臺(tái)代碼編輯軟件。vscode 中文版集成了大部分代碼編輯的器的優(yōu)點(diǎn),集成GIT、代碼調(diào)試、語法高亮,擁有強(qiáng)大豐富的插件系統(tǒng)2020-01-01

