玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

最新VSC 預(yù)覽發(fā)布了新版本荞怒,其中引入了強(qiáng)大的VSC的遠(yuǎn)程開發(fā)擴(kuò)展耻讽,包括了docker察纯、SSH和WSL,本文蟲蟲來給大家實(shí)例深入介紹下Remote-SSH擴(kuò)展针肥。遠(yuǎn)程開發(fā)擴(kuò)展需要在最新的VSC Insiders版本饼记,本文中我們提到的所有VSC都是在該版本下操作,截止本文撰寫時(shí)候VSC Insiders最新版本為1.33慰枕。

概述

VSC的Remote-SSH擴(kuò)展是VSC 遠(yuǎn)程開發(fā)的三個(gè)自插件之一具则,用于通過SSH協(xié)議鏈接到遠(yuǎn)程的開發(fā)環(huán)境,打開遠(yuǎn)程文件夾具帮,實(shí)現(xiàn)和VSC IDE功能的無縫集成博肋。連接到服務(wù)器后,可以實(shí)現(xiàn)與遠(yuǎn)程服務(wù)器文件系統(tǒng)上的代碼文件和運(yùn)行環(huán)境交互蜂厅。通過該擴(kuò)展VSC實(shí)現(xiàn)在遠(yuǎn)程服務(wù)器運(yùn)行命令和擴(kuò)展匪凡,本地VSC所在計(jì)算機(jī)上無需要源代碼和開發(fā)運(yùn)行環(huán)境,就能實(shí)現(xiàn)和提供本地開發(fā)一樣的體驗(yàn)掘猿,包括完整的IntelliSense(高亮锹雏、補(bǔ)全),代碼導(dǎo)航和斷點(diǎn)調(diào)試等术奖。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

安裝部署

Remote-SSH依賴于一下軟件礁遵,要使用該插件必須安裝首先安裝:

安裝依賴插件

VSC Insiders嘗鮮版:即綠色頭標(biāo)的VSC轻绞。VSC真實(shí)版本是藍(lán)色頭標(biāo)的。

兼容OpenSSH的SSH客戶端:需要配置Windows路徑佣耐,不支持Putty政勃。

具體安裝步驟:

MS+X 啟動(dòng)管理員身份啟動(dòng)的命令行,輸入 PowerShell進(jìn)到Powershell界面兼砖。

輸入以下PowerShell命令獲取在線的Openssh

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

通過輸入命令安裝OpenSSH客戶端

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

安裝遠(yuǎn)程開發(fā)Remote Development擴(kuò)展包奸远。

SSH客戶端配置

如果服務(wù)器需要通過多因素身份驗(yàn)證,比如要用證書登陸讽挟,需要設(shè)置

settings.json的remote.SSH.showLoginTerminal:true啟用ControlMaster SSH功能懒叛。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

VSC使用SSH配置文件,并且需要基于SSH密鑰認(rèn)證才能連接到主機(jī)耽梅。具體配置方法如下:

1薛窥、 配置公鑰認(rèn)證,并在遠(yuǎn)程主機(jī)上(本例中的10.0.1.8)添加公鑰到~/.ssh/authorized_keys

2眼姐、 在VSC命令選項(xiàng)板(或者F1)選擇Remote-SSH:Connect to Host,下拉列表選擇Configure SSH Hosts ...诅迷,配置遠(yuǎn)程服務(wù)器信息:HostName,Port众旗,User以及私鑰的文件(和添加到遠(yuǎn)程服務(wù)器的公鑰配對(duì))罢杉。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

注意設(shè)置~/.ssh/目錄下config和證書的文件權(quán)限,需要配置給當(dāng)前用戶贡歧,Administrators和 YSTEM全部控制權(quán)限滩租。

2、運(yùn)行VSC命令選項(xiàng)板(或者F1)Remote-SSH:Connect to Host利朵,選擇主機(jī)比如我們上一步奏配置的SEC-test,或者自定義輸入主機(jī)名和用戶(注意這種情況主機(jī)的端口必須為默認(rèn)的22)律想,格式為:user@hostname

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

3、VSC會(huì)連接到SSH服務(wù)器并自行設(shè)置哗咆。 VSC將使用進(jìn)度條提示連接的信息蜘欲,可以在Remote-SSH 輸出標(biāo)簽頁中查看詳細(xì)日志。

4.連接后晌柬,將進(jìn)入一個(gè)空窗口姥份。我使用可以使用文件>打開,或文件>打開工作區(qū)打開遠(yuǎn)程服務(wù)器上的文件文件夾或工作區(qū)

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

5.選擇的文件夾或工作區(qū)將會(huì)打開年碘。從"擴(kuò)展"視圖中安裝需要的擴(kuò)展澈歉,比如Python擴(kuò)展。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

記住常連主機(jī)

配置過程和上步驟中第二步驟屿衅,在配置文件中重復(fù)建立不同的Host配置項(xiàng)即可,比如我們?cè)僭黾右粋€(gè)數(shù)據(jù)主機(jī):

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

保存埃难,再此連接時(shí)候就能看到保存這個(gè)主機(jī)SEC-db了。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

如果要使用與列出的配置文件不同的配置文件,需要在settings.json中設(shè)置"remote.SSH.configFile"屬性涡尘。

管理擴(kuò)展

VSC擴(kuò)展運(yùn)行在UI/客戶端本地忍弛,或在遠(yuǎn)程主機(jī)上。影響VSC UI的擴(kuò)展(如主題和代碼段)都安裝在本地考抄,但大多數(shù)擴(kuò)展要都要運(yùn)行在遠(yuǎn)程主機(jī)上细疚。這可確保獲得流暢的體驗(yàn),需要通過為SSH主機(jī)上的給定工作區(qū)安裝任何所需的擴(kuò)展川梅。

如果從"擴(kuò)展"視圖安裝擴(kuò)展疯兼,它將自動(dòng)安裝在正確的位置。安裝后贫途,可以根據(jù)類別分組確定擴(kuò)展的安裝位置吧彪。遠(yuǎn)程SSH主機(jī)和本地安裝類別將有一個(gè)類別。

比如下面就是一個(gè)遠(yuǎn)程擴(kuò)展:

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

默認(rèn)安裝擴(kuò)展程序

如果希望在連接的SSH主機(jī)上是默認(rèn)安裝遠(yuǎn)程擴(kuò)展丢早,可以配置settings.json remote.SSH.extensions屬性指定需要安裝的擴(kuò)展姨裸。例如,如果要安裝GitLens和資源監(jiān)視器擴(kuò)展香拉,請(qǐng)按如下所示指定其擴(kuò)展ID:

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

強(qiáng)制擴(kuò)展在本地或者遠(yuǎn)程運(yùn)行

擴(kuò)有時(shí)候由于測(cè)試或者其他需要啦扬,要讓擴(kuò)展只運(yùn)行在本地或者遠(yuǎn)程主機(jī)上中狂,而無需兩方都運(yùn)行凫碌。基于擴(kuò)展程序的選項(xiàng)胃榕,可在settings.json設(shè)置其運(yùn)行在本地或者遠(yuǎn)程主機(jī)盛险。

例如,下面的設(shè)置將強(qiáng)制Docker和Debugger for Chrome擴(kuò)展程序遠(yuǎn)程運(yùn)行而不是本地默認(rèn)值:

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

上面配置的中的workspace表示擴(kuò)展運(yùn)行在遠(yuǎn)程主機(jī)勋又,對(duì)應(yīng)一個(gè)值"ui"則表示將其在本地UI/客戶端上運(yùn)行苦掘。

端口轉(zhuǎn)發(fā)和SSH隧道

Remote-SSH插件也支持Openssh特有一些高級(jí)功能,比如SSH轉(zhuǎn)發(fā)和SSH隧道楔壤。

臨時(shí)端口轉(zhuǎn)發(fā)

如果要在會(huì)話期間臨時(shí)轉(zhuǎn)發(fā)新端口鹤啡,可以在連接到SSH主機(jī)時(shí)候運(yùn)行ssh轉(zhuǎn)發(fā),格式為:**Remote-SSH: Forward Port from Active Host **蹲嚣。

輸入端口號(hào)后递瑰,會(huì)通知使用本地主機(jī)端口來訪問遠(yuǎn)程端口。例如隙畜,如果轉(zhuǎn)發(fā)監(jiān)聽的端口3000的HTTP服務(wù)器抖部,則通知可能會(huì)告訴它已映射到localhost上的端口4123。

此時(shí)就可以通過localhost:4123訪問遠(yuǎn)程的HTTP服務(wù)

固定端口轉(zhuǎn)發(fā)

如果需要設(shè)定一個(gè)可以長(zhǎng)期使用的端口轉(zhuǎn)發(fā)提供服務(wù)议惰,則需要在.ssh/config中配置轉(zhuǎn)發(fā)的配置慎颗,則可以在上面的"記住常連主機(jī)"部分配置類似,不過增加i個(gè)LocalForward指令即可。

例如俯萎,如果要轉(zhuǎn)發(fā)端口8080和6379傲宜,可按照下面配置:

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

上面配置中,我們把兩個(gè)遠(yuǎn)程服務(wù)器上端口8080和6379轉(zhuǎn)發(fā)到本機(jī)8888和6666夫啊,這樣就可以在本地通過ssh隧道訪問遠(yuǎn)程服務(wù)器上的web和redis服務(wù)了蛋哭。

遠(yuǎn)程主機(jī)終端

從VSC打開遠(yuǎn)程主機(jī)上的終端很簡(jiǎn)單。連接后涮母,在VSC菜單中的(Terminal > New Terminal)中打開的任何終端窗口谆趾,就會(huì)自動(dòng)連接到遠(yuǎn)程主機(jī)上,并可執(zhí)行shell操作叛本。

還可以使用此同一終端窗口中的code-insiders命令行來執(zhí)行許多操作沪蓬,例如在遠(yuǎn)程主機(jī)上打開新文件或文件夾。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

遠(yuǎn)程代碼調(diào)試

連接到遠(yuǎn)程主機(jī)后来候,可以像在本地運(yùn)行應(yīng)用程序一樣使用VSC的調(diào)試器跷叉。例如,如果在launch.json中選擇啟動(dòng)配置并開始調(diào)試(F5)营搅,則應(yīng)用程序?qū)⒃谶h(yuǎn)程主機(jī)上啟動(dòng)并對(duì)其使用調(diào)試器云挟。

玩轉(zhuǎn)VSC遠(yuǎn)程開發(fā)之Remote-SSH遠(yuǎn)程連接開發(fā)環(huán)境

限制和缺點(diǎn)

Remote-SSH插件雖然提供強(qiáng)大的遠(yuǎn)程開發(fā)支持,但是目前預(yù)覽版本還存在很多的限制转质。

為安全方便建議使用證書方式進(jìn)行認(rèn)證园欣,雖然也支持基于賬號(hào)密碼和token認(rèn)證憑據(jù)不能保存。

目前還不支持不支持Windows和macOS的遠(yuǎn)程主機(jī)休蟹。(支持Windows和macOS客戶端沸枯。)

Windowss

Linux主機(jī)必須安裝Bash,tar和curl或wget赂弓。

Windows的SSH客戶端不支持PuTTY绑榴,而且.ssh文件權(quán)限配置較復(fù)雜,配置給當(dāng)前用戶盈魁,Administrators和 YSTEM全部控制權(quán)限翔怎。

無法在文件資源管理器中將文件直接復(fù)制到本地。

連接到SSH主機(jī)時(shí)安裝擴(kuò)展包時(shí)杨耙,擴(kuò)展可以在本地安裝赤套,而不是在主機(jī)內(nèi)部安裝。

如果使用SSH clone 存儲(chǔ)庫且SSH密鑰設(shè)置了密碼時(shí)候按脚,遠(yuǎn)程運(yùn)行時(shí)于毙,VSC的拉取和同步功能可能會(huì)掛起。

遠(yuǎn)程主機(jī)上不會(huì)重復(fù)使用本地代理設(shè)置辅搬,這可能會(huì)阻止擴(kuò)展工作唯沮,需要在遠(yuǎn)程主機(jī)上配置合適的代理信息(例如脖旱,配置全局的HTTP_PROXY或HTTPS_PROXY環(huán)境變量)。

總結(jié)

Remote-SSH做為VSC最新遠(yuǎn)程開發(fā)插件中的主打功能介蛉,我們本文實(shí)例介紹其安裝萌庆、配置、使用和高級(jí)配置的一些方法币旧。大家可以對(duì)比文章內(nèi)容動(dòng)手操作玩玩践险,學(xué)以致用,只有動(dòng)手才能真正的掌握一門技術(shù)吹菱。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巍虫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鳍刷,更是在濱河造成了極大的恐慌占遥,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件输瓜,死亡現(xiàn)場(chǎng)離奇詭異瓦胎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)尤揣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門搔啊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人北戏,你說我怎么就攤上這事负芋。” “怎么了最欠?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵示罗,是天一觀的道長(zhǎng)惩猫。 經(jīng)常有香客問我芝硬,道長(zhǎng),這世上最難降的妖魔是什么轧房? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任拌阴,我火速辦了婚禮,結(jié)果婚禮上奶镶,老公的妹妹穿的比我還像新娘迟赃。我一直安慰自己,他們只是感情好厂镇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布纤壁。 她就那樣靜靜地躺著,像睡著了一般捺信。 火紅的嫁衣襯著肌膚如雪酌媒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音秒咨,去河邊找鬼喇辽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雨席,可吹牛的內(nèi)容都是我干的菩咨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼陡厘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼抽米!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糙置,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤缨硝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后罢低,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體查辩,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年网持,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宜岛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡功舀,死狀恐怖萍倡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辟汰,我是刑警寧澤列敲,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站帖汞,受9級(jí)特大地震影響戴而,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜翩蘸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一所意、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧催首,春花似錦扶踊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舶治,卻和暖如春分井,著一層夾襖步出監(jiān)牢的瞬間胶台,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工杂抽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诈唬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓缩麸,卻偏偏與公主長(zhǎng)得像铸磅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杭朱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1阅仔、SSH與OpenSSH簡(jiǎn)介2、Mac遠(yuǎn)程登錄到iPhone3弧械、iOS下的2個(gè)常用賬戶:root八酒、mobile4...
    IIronMan閱讀 2,705評(píng)論 2 6
  • 運(yùn)行操作 CMD命令:開始->運(yùn)行->鍵入cmd或command(在命令行里可以看到系統(tǒng)版本、文件系統(tǒng)版本) CM...
    小沐子_IT閱讀 2,052評(píng)論 0 4
  • 運(yùn)行操作 CMD命令:開始->運(yùn)行->鍵入cmd或command(在命令行里可以看到系統(tǒng)版本刃唐、文件系統(tǒng)版本) CM...
    小明yz閱讀 2,751評(píng)論 0 8
  • win7 cmd管理員權(quán)限設(shè)置 net localgroup administrators 用戶名 /add 把“...
    f675b1a02698閱讀 5,139評(píng)論 0 11
  • 一羞迷、命令行 1. calc-----------啟動(dòng)計(jì)算器 2.certmgr.msc----證書管理實(shí)用程序 3...
    小小辛_c閱讀 699評(píng)論 0 2