VSCODE 配置远程调试环境

以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/f1KZOlL92ojes-r2l9rlCw

我的需求是,在Windows桌面环境下,通过 VSCODE 远程调试在服务器(或者其它远程主机)的工程代码。其实就是提供一个方便快捷的方式,让你可以在本地的 VSCODE 环境里编辑或者查看远程主机的目录文件罢了。

这里说下我的配置过程:(首先,程序猿有个习惯把序号从0开始,莫要见怪)

0. 安装 SSH

在命令行窗口里输入 ssh 然后回车看看输出,确认一下是否已经安装了ssh。只要不是提示找不到ssh,那么就表示本机已安装了ssh。
如果很不幸本地还没安装,那就搜索一下ssh的安装教程吧,估计隔壁老王就有。
实在太懒不想搜的话,这里有条懒虫[https://sourceforge.net/projects/sshwindows/]送给兄dei你。

到这里假设已经确认好安装了ssh,下面会用ssh生成密钥对,包括公钥和私钥,这会被用到绑定服务器和本地计算机便于免密码登录。

C:\Users\我的用户名>ssh-keygen -t rsa
Generating public/private rsa key pair.

Enter file in which to save the key (C:\Users\我的用户名/.ssh/id_rsa):

输入回车,保存密钥对到默认的目录 C:\Users\我的用户名\.ssh 中。

Enter passphrase (empty for no passphrase):

输入回车,设置密钥对保护密码为空(如果对安全性要求比较高,建议还是输入一下密码再回车)。

Enter same passphrase again:

这一步只是重复输入上一步输入的密码,如果上一步设置密码是空,这一步也直接输入回车。

Your identification has been saved in C:\Users\XXX/.ssh/id_rsa.

Your public key has been saved in C:\Users\XXX/.ssh/id_rsa.pub.

The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXX
The key's randomart image is:
+---[RSA 3072]----+
|@@==++ .         |
XXXX
+----[SHA256]-----+

此时,公钥已经保存到 C:\Users\xxx\.ssh\id_rsa.pub 文件中,私钥已经保存到 C:\Users\xxx\.ssh\id_rsa 文件中。
而我用的是阿里云的服务器,它会要求使用后台操作界面生成私钥并自动下载到本地,保存的格式是(.pem)格式。

1. 打开已安装的 VSCODE

VSCODE 配置远程调试环境

2. 安装 VSCODE 插件

VSCODE 自带的插件市场里搜索以下插件并且安装:

插件名 用途 Remote – SSH 用SSH打开远程机器的文件夹而且可以应用 vscode

的所有功能 Remote – SSH: Editing Configuration Files 编辑 SSH

配置文件

3. 编辑 SSH 配置文件

VSCODE 左侧边栏里找到 Remote Explorer 一项,点击进去。

在弹出的窗口里,下拉菜单选择 SSH Targets (这里的目的是链接远程服务器),再点击设置按钮,在弹出来的选择窗口里,如图

VSCODE 配置远程调试环境

选择第一个(自己用户目录下的 config 文件)。按照下面的提示编辑内容并保存。

Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host 自己起个名字,你喜欢就好
    HostName 远程服务器的IP地址
    User 系统用户名
    Port 端口号,SSH一般都是22
    IdentityFile 密钥对里的私钥的本地保存位置(用双引号括起来)

然后在 VSCODE 左边的窗口里SSH TARGETS下面可以看到新添加的主机,默认是未连接状态。

VSCODE 配置远程调试环境

4. 连接主机

在上一步添加的主机窗口里,右键选择 Connect to Host in Current Window 就可以在当前窗口连接到指定的远程主机了。

既然连接成功了(可能也会失败,后边分析原因),那么远程主机的文件怎么浏览查看或者编辑呢?
VSCODE 左侧边栏里找到 Explorer 一项,点击进去。

VSCODE 配置远程调试环境

说回来,上边说到连接可能会有不成功的情况。我这里就曾碰到这样的错误,点击连接后弹出下面的警告窗。

VSCODE 配置远程调试环境

意思就是说 无法稳定连接到我的远程主机xxx,然后也可以看到输出窗口会打印连接的过程日志。细心点的话,可以从日志里看到下面的关键信息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[03:12:56.641] > @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions for 'G:\\ProjectWorkstation\\ali-cloud-key-pair\\id_rsa.pem' are too open.

> It is required that your private key files are NOT accessible by others.

> This private key will be ignored.

> Load key "G:\\ProjectWorkstation\\ali-cloud-key-pair\\id_rsa.pem": bad permissions
> root@XXX.XXX.XXX.XXX: Permission denied (publickey).

意思就是说我这私钥文件[存放在 G:\ProjectWorkstation\ali-cloud-key-pair\id_rsa.pem]没有被保护起来,专业点的说法是文件设置的权限太过宽松了,得改,否则就是不给通过。好吧,我改!下面说下我的配置过程。

1)删掉不相关的用户所有者,只保留当前用户

找到上边提到的那个文件[G:\ProjectWorkstation\ali-cloud-key-pair\id_rsa.pem],鼠标右键选择 属性,在弹出来的 属性 窗口选择 安全,如图

VSCODE 配置远程调试环境

点击 高级,在弹出的 高级安全设置 窗口选择 禁用继承,然后一路点击确认并退出 高级安全设置 的窗口。
接着在 属性 窗口点击 编辑,在弹出的 权限 窗口里将所有的组或用户名删掉,再点击 添加,把自己的当前用户添加上去。
(至于怎么找到当前用户,这里不展开了,你可以在其它地方找到这方面的信息,逃。。。)

2)仅保留读取权限

权限窗口,选中上面新建的用户,编辑权限,仅保留 读取即可。如图

VSCODE 配置远程调试环境

好了,点击确定并退出。

再重新试一下连接主机吧,相信你的问题已经解决了_。

Original: https://www.cnblogs.com/englyf/p/16691460.html
Author: englyf八戒
Title: VSCODE 配置远程调试环境

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574056/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • NO.2 Windows桌面图标-间距参数调整

    遇到如下问题: 桌面图标自动排序后间隔过大,且如图二这种指向图标能看到图标之间的间隔虚框,此方法可调整虚框的水平和垂直距离,即调整图标之间的间距。 测试电脑: 华为 mateboo…

    Linux 2023年6月7日
    0114
  • Linux系统编程之进程控制(进程创建、终止、等待及替换)

    进程创建 在上一节讲解进程概念时,我们提到fork函数是从已经存在的进程中创建一个新进程。那么,系统是如何创建一个新进程的呢?这就需要我们更深入的剖析fork函数。 1.1 for…

    Linux 2023年6月8日
    0108
  • 总结:弹性伸缩的五个条件与六个教训

    前言弹性伸缩是云计算时代给我们带来的一项核心技术红利,但是 IT 的世界中,没有一个系统功能可以不假思索的应用到所有的场景中。这篇文章,我们将应用企业级分布式应用服务-EDAS 的…

    Linux 2023年6月8日
    099
  • 【原创】Linux虚拟化KVM-Qemu分析(十)之virtio驱动

    背景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. –…

    Linux 2023年6月8日
    092
  • 阿里云IoT流转到postgresql数据库方案

    之前写过一篇如使用阿里云上部署.NET 3.1自定义运行时的文章,吐槽一下,虽然现在已经2022年了,但是阿里云函数计算的支持依然停留在.NET Core 2.1,更新缓慢,由于程…

    Linux 2023年6月6日
    0108
  • Spring 4 集成 redis 实现缓存 二

    项目开发过程中经常用到mybatis,为了提升查询效率,mybatis支持一级和二级缓存,一级缓存基于SqlSession级别,默认开启,二级缓存基于Mapper级别;一级和二级缓…

    Linux 2023年6月14日
    097
  • zabbix快速安装(yum)

    1、先卸载系统自带数据库 [root@bogon ~]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 –nodeps 2、安装mys…

    Linux 2023年6月6日
    086
  • 尝试阅读理解一份linux shell脚本

    从头一二去阅读语法和命令说明,对于脚本小白来说比较枯燥,难以坚持,所以这里选择对一份完整的shell脚本代码来逐行逐段解读,希望可以一渡小白,帮助我们快速进入脚本的大门_。司机要开…

    Linux 2023年6月6日
    085
  • apache tomcat 目录session应用信息漏洞

    Tomcat 是一款开源的 Web 应用服务器软件。Tomcat 属于轻量级应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发和调试 JSP 程序的首选。 漏洞描…

    Linux 2023年6月7日
    0135
  • 使用Visual Studio 2019将ASP.NET Core发布为linux-arm64程序

    前言 前段时间入手了一台树莓派4B,一直闲置未使用,最近工作需要,要在上面跑下.NET Core程序,由于树莓派4B使用的是ARM架构,并且支持64位操作系统,为了充分发挥树莓派性…

    Linux 2023年6月8日
    0112
  • .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)

    我们来创建动态菜单吧 首先,先对动态菜单的概念、操作、流程进行约束:1.Host和各个Tenant有自己的自定义菜单2.Host和各个Tenant的权限与自定义菜单相关联2.Ten…

    Linux 2023年6月7日
    095
  • 解决 Docker Push Skipped foreign layer 的错误

    引言当Docker推送基于Windows镜像到私有仓库的时候会遇到 Skipped foreign layer的问题。 docker push 192.168.2.30:5000/…

    Linux 2023年6月14日
    0105
  • PYTORCH: 60分钟 | TORCH.AUTOGRAD

    torch.autograd 是PyTorch的自动微分引擎,用以推动神经网络训练。在本节,你将会对autograd如何帮助神经网络训练的概念有所理解。 背景 神经网络(NNs)是…

    Linux 2023年6月16日
    0167
  • 搭建docker镜像仓库(二):使用harbor搭建本地镜像仓库

    一.系统环境 二.前言 三.Harbor 四.使用harbor搭建私有镜像仓库 4.1 环境介绍 4.2 k8smaster节点安装配置harbor 4.2.1 安装harbor离…

    Linux 2023年6月7日
    0139
  • Linux基线加固

    bash;gutter:true; 1、修改vsftp回显信息 (1)检查办法 修改vsftp回显信息: 需在安装VSFTP的情况下检查,未安装可忽略或禁用该项。 查看ftpd_b…

    Linux 2023年6月13日
    087
  • Postman 正确使用姿势

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 简介: Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的…

    Linux 2023年6月14日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球