記錄一下vscode連接遠(yuǎn)程Linux服務(wù)器及免密登陸的基本操作,操作環(huán)境:
- 本地windows安裝vscode
- 遠(yuǎn)程服務(wù)器存放代碼和安裝vscode-server
vscode通過(guò)commitid和vscode-server綁定,vscode編輯通過(guò)ssh調(diào)試遠(yuǎn)程服務(wù)器代碼
一、環(huán)境安裝
vscode和vscode-server在github項(xiàng)目如下:
https://github.com/microsoft/vscode/tags
https://github.com/coder/code-server/releases
1.1 下載vscode
vscode官網(wǎng)下載
1.2 下載vscode-sever
下載vscode-server的url需要和vscode客戶(hù)端版本的commit-id對(duì)應(yīng)。通過(guò)vscode面板的幫助->關(guān)于可以獲取該信息:
vscode-server下載地址如下:
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-arch/stable
其中commit_id是上面復(fù)制的提交id,而arch則是服務(wù)器的架構(gòu)
由于我使用的服務(wù)器是x86架構(gòu)的,所以下載的url如下:
https://update.code.visualstudio.com/commit:74f6148eb9ea00507ec113ec51c489d6ffb4b771/server-linux-x64/stable
如果是arm的話
https://update.code.visualstudio.com/commit:74f6148eb9ea00507ec113ec51c489d6ffb4b771/server-linux-arm64/stable
通過(guò)scp或者其他方式把下載的壓縮包,放在服務(wù)器上
將它解壓到~/.vscode-server/bin/${commit_id}目錄下:
我這里用的root用戶(hù),~對(duì)應(yīng)的/root
二、ssh鏈接
2.1 安裝Remote-SSH
參考2.2 離線安裝插件
2.2 設(shè)置vscode ssh
點(diǎn)擊“遠(yuǎn)程資源管理” -> “設(shè)置” -> .ssh/config
配置.ssh\config文件如下"
Host 10.191.20.45
HostName 10.191.20.45
User root
- Host:自己定義一個(gè)服務(wù)器的名字
- HostName:服務(wù)器的IP地址
- User:SSH登錄名
- Port:SSH連接的端口(更改過(guò)ssh端口則加上這一項(xiàng))
- IdentityFile:“私鑰的文件路徑”(配置了私鑰則加上這一項(xiàng))
點(diǎn)擊保存,然后重啟 VScode,或者點(diǎn)側(cè)邊欄 remote 的刷新按鈕,這個(gè)時(shí)候 SSH 的列表里應(yīng)該就會(huì)出現(xiàn)你需要連接的服務(wù)器了,在彈出的窗口依次選擇Linux,Continue,然后輸入你設(shè)置的用戶(hù)名對(duì)應(yīng)是用戶(hù)密碼,再按enter鍵,稍等一會(huì)就能連接成功。
2.3 設(shè)置免密登錄
設(shè)置免密登錄之后,每次登錄就不用輸入密碼了
2.3.1 本地生成公私鑰
打開(kāi)cmd,輸入
ssh-keygen
使用ssh-keygen命令生成公鑰和私鑰,如果執(zhí)行命令前,已經(jīng)存在公私鑰文件,則會(huì)重新生成后進(jìn)行覆蓋。默認(rèn)生成之后,在自己用戶(hù)目錄會(huì)生成 .ssh 文件夾,里面 id_rsa.pub是公鑰,id_rsa是私鑰。
2.3.2 服務(wù)器端添加公鑰
服務(wù)器端添加私鑰到authorized_keys
- 設(shè)置服務(wù)器端ssh
如果沒(méi)有設(shè)置可以按以下方式設(shè)置
ssh-keygen -t rsa
- 將本機(jī)生成的rsa_id.pub公鑰上傳至服務(wù)器中
拷貝rsa_id.pub到服務(wù)器,然后將其 追加(cat命令) 寫(xiě)入到 /root/.ssh 目錄下的authorized_keys文件中 (我這里使用的root用戶(hù),其他用戶(hù)就在自己對(duì)應(yīng)的目錄下面)
cat id_rsa.pub >> authorized_keys
為什么是追加寫(xiě)入?因?yàn)榭赡艽嬖谄渌脩?hù)的公鑰,如果~/.ssh目錄下沒(méi)有authorized_keys文件,則需要我們手動(dòng)創(chuàng)建一個(gè):
touch authorized_keys
然后用cat命令寫(xiě)入將公鑰寫(xiě)入文件
三、安裝插件
3.1 vscode安裝插件
3.1.1 在線安裝插件
3.1.2 離線安裝插件
3.1.2.1 下載插件
vscode擴(kuò)展插件
3.1.2.2 安裝插件
此處下載Remote Development 插件,其中包含ssh相關(guān)插件,后面遠(yuǎn)程鏈接需要
下載成功之后是以**.vsix**結(jié)尾的文件
從vscode軟件中進(jìn)行導(dǎo)入剛下載的文件
3.2 vscode-server安裝插件
3.2.1 在線安裝插件
vscode 遠(yuǎn)程ssh鏈接好之后,按照vscode在線安裝方式就可以
3.2.2 離線安裝插件
離線下載插件,我這里服務(wù)器是x64+ubuntu,所以選擇 Linux x64
把下載好的插件放在服務(wù)器上,vscode 遠(yuǎn)程ssh鏈接好之后,按照2.2 離線安裝插件默認(rèn)打開(kāi)vscode-server安裝服務(wù)器上面插件,我這里下載的插件放在服務(wù)器 /root/tmp/ 下面:
安裝插件
安裝完成之后如下:
vscode的插件安裝在自己用戶(hù)目錄:
vscode-server安裝位置在自己home目錄下面的.vscode-server下:
理論上直接copy到對(duì)應(yīng)目錄也行
四、C/C++開(kāi)發(fā)建議安裝clangd
4.1 clangd配置
使用vscode搭配官方的C/C++插件使用發(fā)現(xiàn),經(jīng)常很多代碼都無(wú)法跳轉(zhuǎn),代碼補(bǔ)全功能幾乎是廢的,vscode+clangd可以實(shí)現(xiàn)代碼任意跳轉(zhuǎn)補(bǔ)全等功能
首先自然就是卸載vscode官方提供的C/C++因?yàn)楣δ芎蚦langd會(huì)有沖突,建議直接刪除(禁用)
4.1.1 下載clangd vscode插件
參考 code-server 2.2 離線安裝插件
4.1.2 下載clangd
安裝好clangd插件之后只是一個(gè)套殼現(xiàn)在代碼是不能跳轉(zhuǎn)的,需要通過(guò)clangd language的支持來(lái)完成跳轉(zhuǎn),clangd language的下載方式有兩種方法
- 在線下載:
下載好之后任意打開(kāi)一個(gè)C/CPP文件,vscode下方會(huì)出現(xiàn)彈窗直接install即可 - 離線下載
從GitHub上下載clangd-language
我這邊server端是linux所以下載 clangd-linux
將下載好的clangd解壓到任意一個(gè)path下,如下
在vscode上按住ctrl+,進(jìn)入配置選項(xiàng),如下在clangd中填寫(xiě)我們下載好的language的path。
4.1.3 配置clangd
clangd準(zhǔn)備工作在上述,雖然已經(jīng)基本完成,但是如果打開(kāi)工程代碼還是會(huì)發(fā)現(xiàn)代碼還是不能夠任意跳轉(zhuǎn),這是因?yàn)閏langd查詢(xún)不到對(duì)應(yīng)的工程頭文件,因此需要生成compile_commands.json,使用compile_commands.json文件來(lái)生成索引文件,這樣當(dāng)我們點(diǎn)擊某個(gè)函數(shù)時(shí)可以飛快跳轉(zhuǎn)到它定義的地方。
compile_commands.json文件中記錄的是每個(gè)文件的編譯選項(xiàng),樣式如下:
4.1.3.1 cmake工程配置
cmake工程生成 compile_commands.json 文件比較簡(jiǎn)單,定以CMAKE_EXPORT_COMPILE_COMMANDS 即可。
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ../
4.1.3.2 makefile 工程配置
makefile 工程沒(méi)有現(xiàn)成的選項(xiàng)生成 compile_commands.json 文件。
我們可以通過(guò) Bear 來(lái)生成,而且不需要改動(dòng)代碼。
安裝bear:
- 可以直接 apt-get install bear
- 離線下載 bear
此處bear和libear版本需要一致
bear_***.deb
libear_***.deb
安裝之后,執(zhí)行以下命令即可生成:
bear make [其他make本身的參數(shù)]
4.13.3 jq合并多個(gè)compile_commands.json
安裝jq
- 可以直接 apt-get install jq
- 離線下載jq
unbuntu jq地址
注:實(shí)在安裝不了,直接下載二進(jìn)制文件就行
合并多個(gè)compile_commands.json如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-634045.html
jq -s 'map(.[])' 多個(gè)compile_commands.json文件地址 > 新生成compile_commands.json文件地址
五、其他參考
Microsoft Visual Studio Code 中文手冊(cè)
官方快捷鍵大全
第一次使用 VS Code 時(shí)你應(yīng)該知道的一切配置文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-634045.html
到了這里,關(guān)于vscode連接遠(yuǎn)程Linux服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!