• vscode远程调试linux代码


    1、安装openssh

    windows客户端、linux服务器端都需要安装openssh,一般情况linux服务器默认安装,windows除去新版的 win10,其他都需要单独安装

    2、安装vscode插件

    需要安装 C/C++、CMake Tools、Remote - SSH、Remote Developmentms(能打开服务器下某一文件夹)

    3、vscode远程连接服务器配置

    操作如下:

    打开后界面如下:

     在此可以编辑远程连接配置

    3.1、password方式认证

    直接在config文件加:

    Host 信息港-172.21.138.159    #名字
      HostName 172.21.138.159     #服务器IP
      User root     #登陆用户
      Port 22     #登陆端口
      PreferredAuthentications password     #认证方式默认为password,验证方式包括  password  publickey

    PreferredAuthentications 默认是 password,当认证方式为password时,用户每次远程连接服务器时都需要在命令行处手动输入密码,如果使用 私钥文件 认证方式会简单些

    例子:

    Host 192.168.157.130
      HostName 192.168.157.130
      User root
      Port 22
      PreferredAuthentications password

    3.2、使用密钥认证方式

    3.2.1、生成密钥

    使用ssh命令,在windows运行:

    ssh-keygen -t rsa -b 4096 -f .ssh/id_rsa-remote-ssh         #会在 C:\Users\ArgenT\.ssh 目录下生成 id_rsa-remote-ssh 、id_rsa-remote-ssh.pub两个文件

    id_rsa-remote-ssh文件存放的是私有密钥,id_rsa-remote-ssh.pub存放的是公有密钥(感觉此处跟git ssh认证方式很类似)

    密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。按照当前实际搭建情况如下图所示:
    (此处的参考文章:https://blog.csdn.net/u010417914/article/details/96918562

    3.2.2、将公钥放到服务器

    所以接下来要做的就是将 公钥 放到服务器上(/登陆用户名/.ssh/authorized_keys文件,如果没有则创建authorized_keys文件):

    #放入密钥
    cd ~/.ssh
    cat id_rsa-remote-ssh.pub >> authorized_keys
    #修改权限,确保能够有权限
    sudo chmod 600 authorized_keys
    sudo chmod 700 ~/.ssh

    同时确保服务器的SSH配置正确(默认下无需更改):

    sudo vim /etc/ssh/sshd_config
    确认下面两项:
    RSAAuthentication yes
    PubkeyAuthentication yes
    #如果想将通过密码登陆SSH方式禁用掉,可以让配置文件(谨慎使用):
    PasswordAuthentication no

    3.2.3、vscode配置

    在config文件加上:

    Host 设备名称(不影响连接)
      HostName Linux的地址(域名或ip)
      Port 端口
      PreferredAuthentications publickey        #验证方式包括  password  publickey
      User 用户名
      IdentityFile C:\Users\ArgenT\.ssh\id_rsa-remote-ssh  #私钥文件全路径(指的是私钥文件所在windows的路径),如果上面选择了publickey,需要用这个指出私钥文件的全路径

    PreferredAuthentications 默认是 password

    例子:

    Host 172.20.140.100
      HostName 172.20.192.234
      User root
      Port 18889
      PreferredAuthentications publickey
      IdentityFile C:\Users\ArgenT\.ssh\id_rsa-remote-ssh

    4、调试脚本

    vscode调试C++代码,必须要两个文件:tasks.json(规定了编译命令、编译参数)、launch.json(规定调试时的启动命令、运行参数),并且两个文件必须放在 .vscode 目录下, .vscode 目录放在代码工作目录的根目录下,有的 .vscode 下还有 setting.json ,这个不是必须的,起作用是该项目的 setting(项目的全局设置)

    有两种方法导入tasks.json、launch.json 这两个脚本,一种是用别人的模板,另一种是用 vscode 系统给的模板,下面着重说第二种

    4.1、task.json

    按 ctrl+shift+P 输入 configure tasks,选择Create tasks.json file from templates,之后会看到一系列task模板,选择 cpp build file 或 g++ build file(区别只在于默认生成的启动命令不通),就生成了:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: cpp build active file",
                "command": "/usr/bin/cpp",    #编译命令需要改
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}"
                ],
                "options": {
                    "cwd": "/usr/bin"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": "build",   #不能改,将其加入了编译中
                "detail": "compiler: /usr/bin/cpp"
            }
        ]
    }

    添加完 tasks.json 后就可以编译代码了,使用: CTRL + SHIFT + B 即可完成编译(但不运行),或者 CTRL + SHIFT + P 输入 build task

    4.2、launch.json

    在左侧找到 运行,点开后没有 launch.json 时会提示创建 launch.json :

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) 启动",
                "type": "cppdbg",
                "request": "launch",
                "program": "输入程序名称,例如 ${workspaceFolder}/a.out",     #启动命令
                "args": [],      #启动参数
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
        ]
    }

    在左侧找到 运行 会有调试,或者 F5 编译并调试

  • 相关阅读:
    轻量级监控平台之java进程监控脚本
    轻量级监控平台之cpu监控
    通过jgit一次性升级fastjson版本
    Jedis Unexpected end of stream & java.net.SocketException: Broken pipe问题解决思路
    程序日志停止滚动问题排查
    前后端hosts配置访问问题解决思路
    mysql慢日志分析组件安装
    redis集群搭建
    redis哨兵环境搭建
    pyspider基础
  • 原文地址:https://www.cnblogs.com/lidabo/p/16355844.html
Copyright © 2020-2023  润新知