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

最新VSC 預(yù)覽發(fā)布了新版本,其中引入了強大的VSC的遠程開發(fā)擴展,包括了docker、SSH和WSL,本文蟲蟲來給大家實例深入介紹下Remote-SSH擴展。遠程開發(fā)擴展需要在最新的VSC Insiders版本,本文中我們提到的所有VSC都是在該版本下操作,截止本文撰寫時候VSC Insiders最新版本為1.33。

概述

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

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

安裝部署

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

安裝依賴插件

VSC Insiders嘗鮮版:即綠色頭標的VSC。VSC真實版本是藍色頭標的。

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

具體安裝步驟:

MS+X 啟動管理員身份啟動的命令行,輸入 PowerShell進到Powershell界面。

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

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

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

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

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

安裝遠程開發(fā)Remote Development擴展包。

SSH客戶端配置

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

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

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

VSC使用SSH配置文件,并且需要基于SSH密鑰認證才能連接到主機。具體配置方法如下:

1、 配置公鑰認證,并在遠程主機上(本例中的10.0.1.8)添加公鑰到~/.ssh/authorized_keys

2、 在VSC命令選項板(或者F1)選擇Remote-SSH:Connect to Host,下拉列表選擇Configure SSH Hosts ...,配置遠程服務(wù)器信息:HostName,Port,User以及私鑰的文件(和添加到遠程服務(wù)器的公鑰配對)。

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

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

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

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

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

4.連接后,將進入一個空窗口。我使用可以使用文件>打開,或文件>打開工作區(qū)打開遠程服務(wù)器上的文件文件夾或工作區(qū)

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

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

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

記住常連主機

配置過程和上步驟中第二步驟,在配置文件中重復(fù)建立不同的Host配置項即可,比如我們再增加一個數(shù)據(jù)主機:

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

保存,再此連接時候就能看到保存這個主機SEC-db了。

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

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

管理擴展

VSC擴展運行在UI/客戶端本地,或在遠程主機上。影響VSC UI的擴展(如主題和代碼段)都安裝在本地,但大多數(shù)擴展要都要運行在遠程主機上。這可確保獲得流暢的體驗,需要通過為SSH主機上的給定工作區(qū)安裝任何所需的擴展。

如果從"擴展"視圖安裝擴展,它將自動安裝在正確的位置。安裝后,可以根據(jù)類別分組確定擴展的安裝位置。遠程SSH主機和本地安裝類別將有一個類別。

比如下面就是一個遠程擴展:

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

默認安裝擴展程序

如果希望在連接的SSH主機上是默認安裝遠程擴展,可以配置settings.json remote.SSH.extensions屬性指定需要安裝的擴展。例如,如果要安裝GitLens和資源監(jiān)視器擴展,請按如下所示指定其擴展ID:

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

強制擴展在本地或者遠程運行

擴有時候由于測試或者其他需要,要讓擴展只運行在本地或者遠程主機上,而無需兩方都運行?;跀U展程序的選項,可在settings.json設(shè)置其運行在本地或者遠程主機。

例如,下面的設(shè)置將強制Docker和Debugger for Chrome擴展程序遠程運行而不是本地默認值:

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

上面配置的中的workspace表示擴展運行在遠程主機,對應(yīng)一個值"ui"則表示將其在本地UI/客戶端上運行。

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

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

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

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

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

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

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

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

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

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

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

遠程主機終端

從VSC打開遠程主機上的終端很簡單。連接后,在VSC菜單中的(Terminal > New Terminal)中打開的任何終端窗口,就會自動連接到遠程主機上,并可執(zhí)行shell操作。

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

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

遠程代碼調(diào)試

連接到遠程主機后,可以像在本地運行應(yīng)用程序一樣使用VSC的調(diào)試器。例如,如果在launch.json中選擇啟動配置并開始調(diào)試(F5),則應(yīng)用程序?qū)⒃谶h程主機上啟動并對其使用調(diào)試器。

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

限制和缺點

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

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

目前還不支持不支持Windows和macOS的遠程主機。(支持Windows和macOS客戶端。)

Windowss

Linux主機必須安裝Bash,tar和curl或wget。

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

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

連接到SSH主機時安裝擴展包時,擴展可以在本地安裝,而不是在主機內(nèi)部安裝。

如果使用SSH clone 存儲庫且SSH密鑰設(shè)置了密碼時候,遠程運行時,VSC的拉取和同步功能可能會掛起。

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

總結(jié)

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容