基于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-keygenssh-copy-id两条命令实现免密登录远程服务器主机。
这儿先简单的介绍下免密登录(不关心原理的忽略下面这段话)

免密登录,需要先在本机生成公钥,然后将本机公钥拷贝到远程主机,拷贝的过程,既可以手动(在远程主机主目录下创建.ssh目录,然后将公钥存入该目录下authorized_keys文件中即可),也可以使用命令scpssh-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阅读本地代码的话,只需要点击文件->关闭远程连接即可,十分方便。

参考文献

  1. 「效率」使用VScode连接远程服务器进行开发
  2. Linux之ssh-copy-id命令
  3. win10 ssh 上传密钥过程,出现 无法将“ssh-copy-id”项识别
  4. Win10下配置VScode远程开发(ssh-remote)
posted @ 2022-04-26 10:38  时间的风景  阅读(2641)  评论(0编辑  收藏  举报