基于VSCode的C++远程开发环境搭建教程(Win10)
本文重点是远程开发环境搭建,VScode安装过程不做介绍。本文的特点是简单、靠谱,我之前也看了不少文章,
尤其是免密登录这一块写的五花八门,按步骤根本实现不了,对新人不太友好。
VSCode远程开发C++环境搭建教程步骤如下:
(1)安装VScode
直接在官网下载安装即可。(已安装请忽略这一步)
(2)安装OpenSSH
该服务的作用是让你可以在终端使用ssh指令,Windows10通常自带OpenSSH不需要安装。
- Windows10下检查是否已经安装OpenSSH的方法:
按下快捷键Win + X
,选择Windows PoweShell(管理员)
,输入以下指令:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
如果电脑未安装OpenSSH,则State会显示NotPresent:
可以看到博主电脑OpenSSH.Client
已安装,这就足够了,因为我们ssh连接服务器,本机是作为客户端的。 - 如果未安装,则输入下面指令安装:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
OpenSSH安装成功后,按下快捷键Win + X
,选择Windows PoweShell(管理员)
进入终端,输入ssh命令
应该得到如下结果:
(3)VScode安装Remote-SSH插件
Remote-SSH是VScode的插件,安装完VScode以后,直接在插件中搜索Remote SSH
,即可找到Remote-SSH,点击install
安装。
(4)配置Remote SSH
安装完Remote-SSH以后左侧会出现一个远程资源管理的图标,选择SSH Targets
,进入config配置文件
在配置文件中设置服务器信息,输入HostName和User
,保存以后左侧会出现对应机器名称。
更改设置,文件->首选项->设置->扩展->Remote-SSH,找到Show Login Terminal并勾选。
(5)连接远程开发服务器
点击SSH-TARGETS
,选中我们刚刚配置的远程服务器,右键选择在当前窗口连接远程服务器,弹出让你输入密码:
输入远程服务器的密码就可以登录远程服务器了。(中间可能会让选择远程服务器的平台类型,Linux、Windows或macOS,按照实际情况选择即可)
我们可以打开服务器的个人代码开发文件夹(打开文件夹要再一次输入服务器的密码的哟),直接在文件目录中选择文件进行编辑,代码实时同步到服务器上:
此外,我们可以新建一个终端,可以直接在这里执行编译、调试等。如此,便不再需要通过Vscode写代码,再通过XShell等远程登录工具进入服务器编译代码了。
免密登录远程主机
通过上面的步骤,我们就完成了远程开发环境的搭建了,完全可以满足日常使用。但是,有一个基本的问题是,每次登录远程服务器都要输入密码,这也太麻烦了吧,接下来通过ssh-keygen
和ssh-copy-id
两条命令实现免密登录远程服务器主机。
这儿先简单的介绍下免密登录(不关心原理的忽略下面这段话)
免密登录,需要先在本机生成公钥,然后将本机公钥拷贝到远程主机,拷贝的过程,既可以手动(在远程主机主目录下创建.ssh目录,然后将公钥存入该目录下authorized_keys文件中即可),也可以使用命令
scp
或ssh-copy-id
操作。操作完成后即可免密登录远程主机。
免密登录远程主机的操作步骤
(1)在本机按下快捷键Win + X
,选择Windows PoweShell(管理员)
进入终端,再输入ssh-keygen
命令,接着输入4次回车,就在本机的个人用户目录下生成了公钥。
(2)输入ssh-copy-id -i C:\Users\yimen\.ssh\id_rsa.pub(这里改成你自己的公钥路径) 用户名@远程服务器IP
命令,即可把本地的ssh公钥文件安装到远程主机对应的账户下,并设置了合适的权限。
以我本机为例:
【注意】如果没有ssh-copy-id命令的话,win10会提示:
ssh-copy-id : “ssh-copy-id” 不是内部或外部命令,也不是可运行的程序
解决方案是在powershell
中,先执行以下内容:
function ssh-copy-id([string]$userAtMachine, $args){
$publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
if (!(Test-Path "$publicKey")){
Write-Error "ERROR: failed to open ID file '$publicKey': No such file"
}
else {
& cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"
}
}
再次执行ssh-copy-id -i C:\Users\yimen\.ssh\id_rsa.pub root(用户名)@192.168.10.66(服务器IP)
,根据提示输入密码即可。从此,连接远程服务器再也不用输入密码了,爽飞~
关闭远程连接
一般来说配置了免密登录以后,每当打开VScode软件会自动连接到远程开发服务环境,如果我们此时想用VScode阅读本地代码的话,只需要点击文件->关闭远程连接
即可,十分方便。