当前位置:   article > 正文

Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境_vscode远程连接虚拟机中的linux

vscode远程连接虚拟机中的linux

 前言

目前想要深入学习在Linux,也为了方便编写C/C++程序。Linux的环境里一般自带有c++的编译环境,如果没有安装gcc和g++等编译器也比较便利。但是在虚拟机里用vim编写C++程序又不得劲,因此打算使用vscode远程连接Linux虚拟机进行学习。

为了防止自己以后还要再配置,重复踩坑,因此写下这篇博客用做记录。

环境:windows11、VMware17、rocky linux9.1 ( 开源的CentOS9 )

一、 安装vscode

1. 下载安装vs code

进入官网下载,傻瓜式安装,注意一下软件安装位置即可。

2. 安装vs code 插件

安装完成后,打开vscode。在vscode的扩展(快捷键 Ctrl+Shift+X)里面分别搜索安装①Chinese(中文插件,如果有需要的话) ②Remote-ssh

 

二、配置虚拟机远程连接的ssh服务

- 确保虚拟机的ssh服务可用

打开虚拟机,在终端命令行上敲入:

  1. which sshd   #查看有没有安装ssh服务
  2. # 若没有安装的话,需手动安装
  3. dnf install openssh-server  # CentOS8 及其以上的环境
  4. yum install openssh-server  # CentOS7 及其以下的环境

进行安装。其实在系统安装的时候,若勾选开发工具的话,就自动安装ssh和C++编译环境

- 确认服务器的ssh服务的运行状态:

  1. systemctl start sshd  //开启ssh服务
  2. systemctl enable sshd  // 设置ssh服务开机启动
  3. systemctl status sshd   // 查看ssh服务当前的状态

如下图所示,即表示服务配置完成:

- 配置ssh的远程连接服务(选做)

  - PermitRootLogin: 允许root用户登录

  - PubkeyAuthentication:公钥身份验证,开启此项允许 vscode配置SSH秘钥登录

系统默认是允许以root用户来远程连接Linux虚拟器的,

但是如果发现明明自己sshd服务开着的,却还是连不上的,就需要配置ssh服务:

  1. vim /etc/ssh/sshd_config  # 修改一下sshd服务的配置
  2. # 将文件内进行如下修改
  3. PermitRootLogin yes
  4. PubkeyAuthentication yes
  5. # 最后键入  :wq   保存退出
  6. systemctl restart sshd  #重启sshd服务

- 记录linux虚拟器的IP地址:

  1. ip a  # 查看IP地址
  2. ifconfig  # 也可查看IP地址

三、 实现vscode远程免密登录

- windows11配置ssh服务的客户端

第一步:进入设置界面,选择 应用 -> 可选功能

第二步:先看看下方的已安装功能里有没有OpenSSH客户端(必选)和OpenSSH服务端(可选),如果没有则点击右上角的查看功能,搜索OpenSSH客户端,然后下载并安装即可。

第三步:安装完成后,在下方的已安装功能里就有OpenSSH客户端了。

- vscode尝试登录linux虚拟器:

 

 

在配置文件内输入:

  1. Host rockylinux9.1         #随便起个名字
  2.   HostName 192.168.xxx.xxx   # 虚拟机的IP地址
  3.   User root                # 虚拟机的用户名,我这里用root
  4. ## 既然是自己一步步搭建的,没必要用普通用户来委屈自己

然后重新执行第一步操作,就会在弹窗里发现多了一个连接选项,接着我们点击那个连接选项,然后依次 选择Linux -> 输入密码

如果一切正常,没有弹窗警告,便成功用vscode连接上虚拟机了, 此时下方就是一个Shell窗口了。

- 免密连接虚拟机

我们可以使用vscode内的Shell窗口生成密钥

  1. ssh-keygen # 生成密钥和公钥, 然后一路默认回车
  2. # 直到出现以下内容表示密钥生成完毕
  3. The key's randomart image is:
  4. +---[RSA 3072]----+
  5. |o..+ . ..+.      |
  6. |ooo + o.o        |
  7. |E.o. oo..        |
  8. |++ *=oo+         |
  9. |+ooo**. S        |
  10. |  o =+*o         |
  11. |   ..O.=         |
  12. |    = o o        |
  13. |    .+ .         |
  14. +----[SHA256]-----+
  15. # 进入 .ssh 文件夹内
  16. cd ~/.ssh
  17. # 查看文件夹下的内容有 id_rsa(私钥)  id_rsa.pub(公钥)
  18. ls
  19. # 复制一份公钥的内容到authorized_keys中,ssh通过它进行密钥的验证
  20. cat id_rsa.pub >> authorized_keys
  21. # 设置文件权限
  22. chmod 600 authorized_keys
  23. chmod 700 ~/.ssh
  24. # 重启sshd服务
  25. systemctl restart sshd

随后,我们可以直接通过vscode远程连接虚拟机,打开文件夹,直接将生成的私钥id_rsa下载到主机中。

 最后将下载的id_rsa文件,放在文件夹 C:/Users/***/.ssh 下,即可完成免密登录的最后一步。

 四、 C++编译环境搭建

1. vscode安装插件

用vscode连接上linux虚拟器后, 打开插件扩展, 安装C/C++和C/C++ Extension Pack插件。

2. 配置C++运行的项目环境

注:以下操作:

1. 可以用命令行在vscode下方的Shell终端内操作,如下所示。

2. 也可以用鼠标在vscode内一步步操作

为了方便书写,不想截图了,就用命令行的方式来展现配置过程。

1-新建Projects文件夹,作为以后新建工程的主目录

  1. mkdir Projects
  2. cd Projects

2- 在.vscode文件夹下,写三个配置文件

  1. mkdir .vscode
  2. cd .vscode
  3. # 第一个配置文件 c_cpp_properties.json
  4. vim c_cpp_properties.json
  5. # 输入以下内容:
  6. {
  7.     "configurations": [
  8.         {
  9.             "name": "Linux",
  10.             "includePath": [
  11.                 "${workspaceFolder}/**"
  12.             ],
  13.             "defines": [
  14.                 "_DEBUG",
  15.                 "UNICODE",
  16.                 "_UNICODE"
  17.             ],
  18.             "compilerPath": "/usr/bin/g++",
  19.             "cStandard": "c17",
  20.             "cppStandard": "gnu++17",
  21.             "intelliSenseMode": "linux-gcc-x64"
  22.         }
  23.     ],
  24.     "version": 4
  25. }
  1. # 第二个配置文件 tasks.json
  2. vim tasks.json
  3. # 输入以下内容:
  4. {
  5.   "version": "2.0.0",
  6.   "tasks": [
  7.     {
  8.       "type": "shell",
  9.       "label": "g++ build active file",
  10.       "command": "/usr/bin/g++",
  11.       "args": [
  12.         "-fdiagnostics-color=always",
  13.         "-g",
  14.         "${file}",
  15.         "-o",
  16.         "${fileDirname}/built/${fileBasenameNoExtension}"
  17.       ],
  18.       "options": {
  19.         "cwd": "/usr/bin"
  20.       },
  21.       "problemMatcher": [
  22.         "$gcc"
  23.       ],
  24.       "group": {
  25.         "kind": "build",
  26.         "isDefault": true
  27.       },
  28.       "detail": "编译器: /usr/bin/g++"
  29.     }
  30.   ]
  31. }
  1. # 第三个配置文件 launch.json
  2. vim launch.json
  3. # 输入以下内容:
  4. {
  5.     // 使用 IntelliSense 了解相关属性。
  6.     // 悬停以查看现有属性的描述。
  7.     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  8.         "version": "0.2.0",
  9.         "configurations": [
  10.           {
  11.             "name": "g++ build and debug active file",
  12.             "type": "cppdbg",
  13.             "request": "launch",
  14.             "program": "${fileDirname}/built/${fileBasenameNoExtension}",
  15.             "args": [],
  16.             "stopAtEntry": false,
  17.             "cwd": "${workspaceFolder}",
  18.             "environment": [],
  19.             "externalConsole": false,
  20.             "MIMode": "gdb",
  21.             "setupCommands": [
  22.               {
  23.                 "description": "Enable pretty-printing for gdb",
  24.                 "text": "-enable-pretty-printing",
  25.                 "ignoreFailures": true
  26.               }
  27.             ],
  28.             "preLaunchTask": "g++ build active file",
  29.             "miDebuggerPath": "/usr/bin/gdb"
  30.           }
  31.     ]
  32. }

3. 创建一个test工程

1- 创建项目的目录:

  1. cd ~/Peojects
  2. # 创建工程test
  3. mkdir test
  4. cd test
  5. # 创建存放编译后二进制文件的文件夹
  6. mkdir built

2- 运行项目工程

在test工程内,新建一个test.cpp, 并在文件内写入以下内容:

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.   cout << "Hello world!" << endl;
  5.   return 0;
  6. }

然后 按下快捷键"Ctrl + Shift + B" 就可以编译test.cpp文件了,编译的结果为test  存在在built文件夹内。

在shell终端内输入:

  1. # 到工程的built目录下
  2. cd  ~/Projects/test/built/
  3. # 运行生成的二进制文件,在linux中不需要exe后缀
  4. ./test

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/213553?site
推荐阅读
相关标签
  

闽ICP备14008679号