工欲善其事详拙,必先利其器:VS Code Remote完美實(shí)現(xiàn)遠(yuǎn)程開(kāi)發(fā)

前面寫(xiě)了《使用Visual Studio 2019進(jìn)行嵌入式Linux開(kāi)發(fā)》和《通過(guò)samba實(shí)現(xiàn)linux與windows共享文件》,兩者都沒(méi)有達(dá)到自己理想的程度蔓同。Visual Studio 2019似乎只支持CMake饶辙,個(gè)頭也比較大,Samba+source insight的方式斑粱,又還要一個(gè)終端工具弃揽,不夠方便(屏幕尺寸大或多個(gè)顯示器的當(dāng)我沒(méi)說(shuō))。VS Code V1.35增加VS Code Remote之后则北,直覺(jué)告訴自己矿微,這就是我想要的。

下文將一步步指導(dǎo)你使用Visual Studio Code Remote - SSH擴(kuò)展連接到Linux虛擬機(jī)并通過(guò)一個(gè)簡(jiǎn)單的Hello world例程來(lái)展示如何使用它尚揣。

注意:本文不打算介紹具體如何搭建一個(gè)Linux虛擬機(jī)及相關(guān)的開(kāi)發(fā)環(huán)境搭建涌矢,所使用的Linux可以裝在本地主機(jī)、本地局域網(wǎng)或者云服務(wù)器上快骗,但是需要滿足一些條件D缺印!方篮!

Linux系統(tǒng)要求

盡量選擇使用最近發(fā)布的穩(wěn)定版或者LTS版本:

  • Ubuntu 64-bit x86 (16.04+)
  • Debian 64-bit x86 (8+)
  • CentOS / RHEL 64-bit x86 (7+)

這幾個(gè)發(fā)行版安裝后不需要解決額外的依賴便可以保證VS Code Remote Development擴(kuò)展正常工作名秀。這里我使用Ubuntu 18.04 64-bit,如果選擇其它的版本恭取,可以查看該本版需要解決哪些依賴泰偿。

安裝OpenSSH for Windows
Windows10

Windows 10 1809及之后的版本已經(jīng)添加OpenSSH,可以在“設(shè)置-應(yīng)用-應(yīng)用和功能-管理可選功能-添加功能”中找到并完成安裝蜈垮。
如果不行,可以按照下面步驟在PowerShell中安裝:

  • 1裕照、查詢
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# This should return the following output:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
  • 2攒发、安裝服務(wù)器和/或客戶端功能
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# Both of these should return the following output:

Path          :
Online        : True
RestartNeeded : False

3、SSH 服務(wù)器的初始配置
首次使用晋南,以管理員身份啟動(dòng) PowerShell惠猿,然后運(yùn)行以下命令來(lái)啟動(dòng) SSHD 服務(wù)

Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. 
Get-NetFirewallRule -Name *ssh*
# There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
# If the firewall does not exist, create one
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
其它版本

(這里是在win7下執(zhí)行)參考下面的步驟進(jìn)行安裝:

  • 下載最新版本的OpenSSH
  • 將下載好的文件解壓到C:\Program Files\OpenSSH路徑下(可能需要管理員權(quán)限)
  • 打開(kāi)命令行窗口并進(jìn)入上一步的路徑下,執(zhí)行下面語(yǔ)句進(jìn)行安裝
    powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
    
  • 設(shè)置防火墻负间,允許SSH連接
    netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
    
  • 啟動(dòng)sshd偶妖,這一步會(huì)在%programdata%\ssh下生成key
    net start sshd
    
  • 設(shè)置sshd服務(wù)自動(dòng)啟動(dòng)
    Set-Service sshd -StartupType Automatic
    
安裝Remote Development擴(kuò)展

Remote Development擴(kuò)展包包含 SSH、Containers和WSL三大部分政溃,其實(shí)我們只用到SSH趾访。

安裝好后會(huì)在左下角看到如下的狀態(tài)欄(綠色那個(gè))
點(diǎn)擊這個(gè)圖標(biāo)就會(huì)彈出下圖的選擇框
Windows10下remote-ssh V0.50的設(shè)置

Windows10下配置文件路徑默認(rèn)有兩個(gè),一個(gè) C:\ProgramData\ssh董虱,另一個(gè)是 C:\Users\tianxiao\.ssh扼鞋,由于Windows10的權(quán)限問(wèn)題申鱼,這里使用 C:\ProgramData\ssh下的配置文件,另一個(gè)留給命令行程序用云头。


此外捐友,還需要指定使用的openssh的路徑,不然會(huì)報(bào)錯(cuò)的

連接遠(yuǎn)程主機(jī)
1溃槐、不認(rèn)證方式連接
  • 配置SSH客戶端:Host后面跟著的是別名匣砖,怎么好記怎么取昏滴;
  • 連接Linux虛擬機(jī)

    選擇上一步的配置
  • 輸入密碼并按回車鍵猴鲫,這一步一共有兩次,比較麻煩
  • 連接成功
  • 斷開(kāi)連接
2影涉、認(rèn)證方式連接

前面的連接方式每次連接時(shí)都要輸入兩次密碼变隔,比較麻煩,而認(rèn)證方式只要配置好就可以直接連接了蟹倾。

  • 生成SSH密鑰對(duì):在命令行下執(zhí)行ssh-keygen -t rsa -b 4096匣缘,后面三個(gè)提示都敲回車,選擇默認(rèn)配置
  • 將本地公鑰(id_rsa.pub文件)的內(nèi)容添加到SSH主機(jī)上的authorized_keys文件中:
SET REMOTEHOST=ubuntu@192.168.196.132

scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

執(zhí)行后面兩條指令時(shí)需要輸入相應(yīng)的密碼鲜棠,因?yàn)楫?dāng)前還是使用非認(rèn)證的方式訪問(wèn)

現(xiàn)在再次連接Linux主機(jī)就不需要輸入密碼了肌厨,直接就連接成功!;砺健柑爸!

連接成功的效果
  • 菜單欄:文件-打開(kāi)文件,彈出選擇文件窗口盒音,可以用鼠標(biāo)操作選擇要打開(kāi)的文件或文件夾
  • 菜單欄:終端-新建終端表鳍,可以看到默認(rèn)處于當(dāng)前用戶目錄下
  • 實(shí)戰(zhàn)“hello world”

    唯一的遺憾就是沒(méi)有新建文件夾了,得在終端建好文件夾祥诽,然后進(jìn)去之后就像在本地一樣建立文件譬圣、編碼。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雄坪,一起剝皮案震驚了整個(gè)濱河市厘熟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌维哈,老刑警劉巖绳姨,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阔挠,居然都是意外死亡飘庄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)谒亦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)竭宰,“玉大人空郊,你說(shuō)我怎么就攤上這事∏薪遥” “怎么了狞甚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)廓旬。 經(jīng)常有香客問(wèn)我哼审,道長(zhǎng),這世上最難降的妖魔是什么孕豹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任涩盾,我火速辦了婚禮,結(jié)果婚禮上励背,老公的妹妹穿的比我還像新娘春霍。我一直安慰自己,他們只是感情好叶眉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布址儒。 她就那樣靜靜地躺著,像睡著了一般衅疙。 火紅的嫁衣襯著肌膚如雪莲趣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,184評(píng)論 1 308
  • 那天饱溢,我揣著相機(jī)與錄音喧伞,去河邊找鬼。 笑死绩郎,一個(gè)胖子當(dāng)著我的面吹牛潘鲫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肋杖,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼次舌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了兽愤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤挪圾,失蹤者是張志新(化名)和其女友劉穎浅萧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體哲思,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洼畅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棚赔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帝簇。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徘郭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丧肴,到底是詐尸還是另有隱情残揉,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布芋浮,位于F島的核電站抱环,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纸巷。R本人自食惡果不足惜镇草,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瘤旨。 院中可真熱鬧梯啤,春花似錦、人聲如沸存哲。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宏胯。三九已至羽嫡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肩袍,已是汗流浹背杭棵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氛赐,地道東北人魂爪。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像艰管,于是被迫代替她去往敵國(guó)和親滓侍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

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