linux c ide ssh,VSCode配置远程SSH-IDE
●Preface
服務器很多時候都是部署在Linux遠程機器上的,我們通常是SSH連過去然后用vim或者emacs去修改源文件。
這種方式對我來說很麻煩,因為我已經習慣了全宇宙最好用的C++IDE Visual Studio,離開IDE寫代碼實在太痛苦了。
所以我只能借助samba+sourceinsight的組合來勉強度日。這個組合其實是比較好的,只不過配置特別麻煩,實在是不想折騰。
這時,微軟開發了一個VSCode的插件Remote-SSH,可以說是目前比較完美的解決了在windows下開發linux程序的問題。
Remote-SSH配置簡單,界面可視化,你可以把他看做是帶IDE的Putty。當然你也可以只把他當做一個遠程ssh的連接工具來代替putty,xshell。
●本地安裝SSH客戶端
win10系統自帶openssh,所以這一步可以省略。
win7系統需要安裝git for windows,內部集成git bash帶ssh客戶端。
●安裝Visual Studio Code
從官網下載安裝 https://code.visualstudio.com/
●安裝Remote-SSH
(1)VSCode左側邊欄上找到Extensions按鈕,點擊打開擴展插件面板。
(2)在擴展搜索欄中搜索到"Remote-SSH"這個插件,然后點擊下載安裝這個插件。
(3)此插件安裝完畢后,側邊欄會出現一個名為"Remote-SSH"新的圖標按鈕。
(4)點擊VSCode左側邊欄上的"Remote-SSH"圖標按鈕,打開"Remote-SSH"面板。
(5)在CONNECTIONS條目右邊找到配置按鈕圖標[Configure],點擊配置。
(6)此時會彈出一個下拉框,選擇config配置文件保存路徑,比如C:\Users\Administrator\.ssh\config
(7)點擊編輯這個config文件,編輯代碼如下示例:
Host njdaby?? #遠程主機1別名alias,注意主機別名不能包含@符,否則會連接失敗
HostName 117.78.41.7
User root
IdentityFile /c/users/Administrator/.ssh/id_rsa
#IdentityFile指定秘鑰名稱路徑(按linux/bash路徑格式),缺省路徑為%HOME%\.ssh\id_rsa,其中%HOME%為bash用戶根目錄,通過windows的環境變量設置。
Host dev_tellfun? #遠程主機2別名alias
HostName 47.96.255.174
User root
IdentityFile /c/users/Administrator/.ssh/id_rsa
(8)保存配置文件后,上面保存的遠程主機別名就出現在CONNECTIONS條目的下拉列表中。
(9)在CONNECTIONS下拉列表中點擊需要連接的主機別名,開始連接遠程主機。
如果希望連接時,不要輸入密碼,那么還需要在本地創建密鑰,并把公鑰復制到遠程服務器上。
●本地PC上安裝SSH密鑰
(1)安裝SSH
(2)打開本地DOS命令行
生成SSH秘鑰對 :ssh-keygen -t rsa -b 4096 (-b 4096表示生成的rsa秘鑰對的長度是4096個bit)
在執行完上述指令后,會在~\.ssh這個目錄下生成:
id-rsa和id-rsa.pub兩個文件, 第一個是私鑰文件,第二個是公鑰文件。
注:用戶根目錄(~)的絕對路徑可以通過windows的環境變量HOME來設置,默認c:\users\administrator
●遠程服務器配置
(1)檢測ssh服務是否啟動 : netstat -ntlp | grep ssh
(2)如果ssh服務沒有啟動 :/etc/init.d/ssh resart
(3)添加客戶端公鑰,將客戶端的公鑰文件中的內容添加到 vim /root/.ssh/authorized_keys。(該文件配置了允許連入的客戶端的公鑰)
(4)修改配置文件:vim /etc/ssh/sshd_config, 把PubkeyAuthentication配置為 yes 允許使用基于密鑰認證的方式登錄。
●注意事項
①使用秘鑰連接ssh時,如果不指定秘鑰路徑,默認秘鑰路徑為%HOME%\.ssh\id_rsa,如果連接失敗,就要檢查確認該路徑是否正確。
②vscode的配置文件config中,注意主機別名不能包含@符,否則會連接失敗。
總結
以上是生活随笔為你收集整理的linux c ide ssh,VSCode配置远程SSH-IDE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么叫数字政府?我国数字政府建设具体情况
- 下一篇: 数字政府建设的核心是什么?有没有成熟的落