VSCode遠程開發(fā)調(diào)試服務器c/c++代碼
思路與上篇(PyCharm遠程調(diào)試服務器python代碼 )是一致的,所以端口轉(zhuǎn)發(fā)這部分直接照抄上篇:
一、端口轉(zhuǎn)發(fā)
對于沒有公網(wǎng)IP的遠程訓練服務器,需要先配置端口轉(zhuǎn)發(fā),可以用ssh借道有辦公網(wǎng)IP的辦公機器。
0、公司給配置了一臺Ubuntu系統(tǒng)的臺式機器A,開發(fā)時想用Windows筆記本B,把遠程CentOS訓練服務器記為C。
1、首先需要修改臺式機A上的ssh配置文件,如果不修改配置的話,將只有機器A可以訪問訓練服務器C。
$ sudo vim /etc/ssh/sshd_config
添加:
GatewayPorts yes
PasswordAuthentication yes
然后重啟機器A的sshd服務使上述配置生效。
$ sudo systemctl restart sshd
2、在訓練服務器C上向機器A主動建立SSH連接,轉(zhuǎn)發(fā)訓練服務器C的22號端口
3、用ssh命令轉(zhuǎn)發(fā)端口,ssh -NTf -R 轉(zhuǎn)發(fā)端口號:localhost:22 機器A的用戶名@機器A的IP
$ ssh -NTf -R 2333:127.0.0.1:22 zhuangweiji@10.220.12*.25*
輸入密碼后就在后臺運行了
4、驗證,在機器B上
$ ssh zhuangweiji@10.220.12*.25*
登陸上的話就證明ssh隧道建立成功了
5、理論上,A和B可以是同一臺機器,也就是C可以直接把端口轉(zhuǎn)發(fā)給有pycharm的開發(fā)機器。不過由于我的開發(fā)機上下班會帶著移動,移動過程中SSH不能保持連接,經(jīng)常要重新配置IP,所以選擇了用辦公室的臺式機中轉(zhuǎn)。
二、免密登錄
0、端口轉(zhuǎn)發(fā)完成后,在windows機器B上,本地cmd窗口生成公鑰和密鑰(密鑰默認放在C:\Users\用戶名\.ssh下)
ssh-keygen -t rsa -b 4096
1、把公鑰添加到A機器的公鑰集,法1:
將公鑰id_rsa.pub復制到機器A的~/.ssh文件夾下,重命名為id_rsa_x260.pub(我的機器是x260),并將其追加到A機器的公鑰集里
cat id_rsa_x260.pub >> authorized_keys
2、把公鑰添加到A機器的公鑰集,法2:
ssh-copy-id username@10.221.*.*
會自動把公鑰append到A機器的$HOME/.ssh/authorized_keys里
三、安裝 OpenSSH
0、Windows 10 機器 上需要安裝 OpenSSH,管理員身份打開 PowerShell
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
四、遠程開發(fā)調(diào)試
0、打開 VSCode,添加插件 Remote Development, 會自動安裝 Remote-Container, Remote-SSH 及 Remote-WSL 全家桶,也可以只安裝Remote-SSH。
1、安裝好插件之后,右側(cè)邊欄選擇remote explorer,下拉菜單欄選擇SSH target,再點擊configure小齒輪

2、選擇c:\user\用戶名\.ssh\config,添加如下信息

3、Hostname 填機器A的ip,port填轉(zhuǎn)發(fā)的端口,填入用戶名,由于已經(jīng)在A機器上添加公鑰,因此不需要密碼。
保存后,ssh targets里面就會出現(xiàn)機器A,點擊connect to host in new window之后,就可以直接在新窗口中訪問機器C。

4、插件被分成了本地和遠程兩部分,本地插件不能在遠程使用,需要重新安裝

總結(jié)
到此這篇關于VSCode遠程開發(fā)調(diào)試服務器c/c++代碼的文章就介紹到這了,更多相關VSCode遠程調(diào)試c/c++代碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
深入剖析C++中的struct結(jié)構(gòu)體字節(jié)對齊
要求數(shù)據(jù)內(nèi)存的起始地址的值是某個數(shù)k的倍數(shù),這就是所謂的內(nèi)存對齊,本文就來深入剖析C++中的struct結(jié)構(gòu)體字節(jié)對齊,需要的朋友可以參考下2016-05-05
C++ 詳細講解stack與queue的模擬實現(xiàn)
C++ Stack(堆棧) 是一個容器類的改編,為程序員提供了堆棧的全部功能,也就是說實現(xiàn)了一個先進后出(FILO)的數(shù)據(jù)結(jié)構(gòu),許多程序都使用了 queue 容器。queue 容器可以用來表示超市的結(jié)賬隊列或服務器上等待執(zhí)行的數(shù)據(jù)庫事務隊列2022-04-04
如何實現(xiàn)socket網(wǎng)絡編程的多線程
首先,學好計算機網(wǎng)絡知識真的很重要。雖然,學不好不會影響理解下面這個關于宏觀講解,但是,學好了可以自己打漁吃,學不好就只能知道眼前有魚吃卻打不到漁。在Java中網(wǎng)絡程序有2種協(xié)議:TCP和UDP,下面可以和小編一起學習下2019-05-05

