VSCode连接远程服务器,并用Docker环境开发和调试


1. 连接服务器操作步骤

1.1 在本机安装SSH

由于我们是使用 SSH 连接远程服务器,因此 Windows 需要支持 SSH。可以通过安装 Git 来获取 SSH 功能,如何验证? 使用 Win + R ,输入 cmd 打开控制窗口,直接输入 ssh,如下提示,则代表 SSH 已经安装成功。

1.2 添加插件

使用 VSCode 最方便的一点,就是有很多插件可供选择。本次我们需要使用 Remote - SSH 插件,长这个样子,不要搞错了。

安装完插件后,在侧边栏可以看到 “远程资源管理器” 图标。

1.3 配置SSH密钥

目的:将本机添加到远程服务器连接白名单,让服务器知道是已认证的电脑在连接。过程类似于 GitHub 网站添加本地电脑的 SSH 公钥。使用如下命令,生成 SSH 公钥文件。如果已经生成,则可直接使用,跳到步骤二。

# 方法一
ssh-keygen# 方法二,参考使用Git生成密钥
ssh-keygen -t rsa -C "youremail@example.com"

一般生成的密钥文件,路径为:C:\Users\user\.ssh ,找到公钥文件 id_rsa.pub。要确认远程服务器是否支持 SSH,在远程服务器 ~/.ssh 目录下新建 authorized_keys 文件,将本地 id_rsa.pub 中的内容复制到远程服务器的 authorized_keys 中。这样后续在使用 Remote 插件时,不需要密码,就可以直接登录到服务器。

1.4 添加配置文件

目的:配置 VSCode 连接远程服务器的一些基本信息。点击左侧的 “远程资源管理器” 图标,点击右上角的小齿轮(设置)

在弹出来的窗口中,选择第一个 ~/.ssh/config 文件打开,参考下图,填写对应信息。

Host <远程主机名称>HostName <远程主机IP>User <用户名>Port <ssh端口,默认22>IdentityFile <本机SSH私钥路径>ForwardAgent yes

解释:

  • Host:连接的主机名称,可自定义;
  • HostName:远程主机的 IP 地址;
  • User:用于登录远程主机的用户名;
  • Port:用于登录远程主机的端口,SSH 默认为 22;
  • IdentityFile:本地的私钥文件 id_rsa 路径;

如果需要连接多个远程服务器,可参考如上内容,配置多个即可。

Host <远程主机名称1>HostName <远程主机1 IP>User <用户名1>Port <ssh端口,默认22>IdentityFile <本机SSH私钥路径>ForwardAgent yesHost <远程主机名称2>HostName <远程主机2 IP>User <用户名2>Port <ssh端口,默认22>IdentityFile <本机SSH私钥路径>ForwardAgent yes

1.5 连接测试

如果连接成功,左下角蓝色部分会显示当前已连接的主机名。

1.6 编写代码

点击 Open Folder 打开服务器对应的文件夹,就可以创建文件写代码了,所做的改写都是直接写的服务器中的文件,不会同步到本地。若要下载下来需要安装 SFTP 插件,右键文件选择下载。

2. 编写Python代码及调试需要的一些插件

  • Python
  • Python Debugger
  • Pylint
  • Pylance

3. 用Docker环境中的Python解释器运行和调试代码需要的操作

注:之后操作需要 VSCode 连接上服务器后进行(可以看左下角辨认是否连上)

3.1 安装插件Remote Development

3.2 获取正在运行的容器列表(若是普通用户没权限需要参考3.3加权限)

通过快捷键:Ctrl + Shift + P 或如下图点击右下角:

点击 attach to running container 得到正在运行的容器列表。

选择连接到正在运行的容器。

3.3 若在3.2中出现docker权限问题需要在服务器上操作

在服务器上运行如下指令(username 换成自己的用户名,或者 $USER

sudo gpasswd -a username docker

更新权限

newgrp docker

可以用如下指令检查用户组下含 docker 的权限

cat /etc/group | grep docker

回到3.2操作。

3.4 连接好后安装对应的语言编译器,调试器之类的就可以进行开发了

若要切换服务器的环境或者换Docker可以到如下界面进行操作,dev container 就是目前所在的Docker环境。

参考文档

  • 连服务器:https://server.51cto.com/article/684146.html
  • 连Docker(作为普通用户需要给Docker组权限才能连上):https://blog.csdn.net/xieeryihe/article/details/130220821

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/367527.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战项目——用Java实现图书管理系统

前言 首先既然是管理系统&#xff0c;那咱们就要实现以下这几个功能了--> 分析 1.首先是用户分为两种&#xff0c;一个是管理员&#xff0c;另一个是普通用户&#xff0c;既如此&#xff0c;可以定义一个用户类&#xff08;user&#xff09;&#xff0c;在定义管理员类&am…

哈哈看到这条消息感觉就像是打开了窗户

在这个信息爆炸的时代&#xff0c;每一条动态可能成为我们情绪的小小触发器。今天&#xff0c;当我无意间滑过那条由杜海涛亲自发布的“自曝式”消息时&#xff0c;不禁心头一颤——如果这是我的另一半&#xff0c;哎呀&#xff0c;那画面&#xff0c;简直比烧烤摊还要“热辣”…

多微信运营管理方案

微信作为一款社交通讯软件&#xff0c;已经成为人们日常生活中不可缺少的工具。不仅个人&#xff0c;很多企业都用微信来联系客户、维护客户和营销&#xff0c;这自然而然就会有很多微信账号、手机也多&#xff0c;那管理起来就会带来很多的不便&#xff0c;而多微信私域管理系…

K8s的基本使用和认识

目录 介绍 控制端 Node(节点) 控制端与节点的关系图 基本使用 创建和运行资源 查找和参看资源 修改和删除资源 介绍 控制端 api-server(api)是集群的核心是k8s中最重要的组件,因为它是实现声明式api的关键 kubernetes api-server的核心功能是提供了Kubernetes各类资…

7.6、指针和数组

代码 #include <iostream> using namespace std;int main() {//指针和数组//利用指针访问数组中的元素int arr[10] { 1,2,3,4,5,6,7,8,9,10 };cout << "第一个元素为&#xff1a;" << arr[0] << endl;int * p arr;//arr就是数组首地址co…

Python爬取国家医保平台公开数据

国家医保服务平台数据爬取python爬虫数据爬取医疗公开数据 定点医疗机构查询定点零售药店查询医保机构查询药品分类与代码查询 等等&#xff0c;数据都能爬 接口地址&#xff1a;/ebus/fuwu/api/nthl/api/CommQuery/queryFixedHospital 签名参数&#xff1a;signData {dat…

中国国产AI芯片的崛起

一、CUDA的垄断 当讨论半导体行业面临的挑战时&#xff0c;你首先想到的是什么&#xff1f;光刻机&#xff1f;3纳米或者5纳米技术&#xff1f;我们无法生产的完美方形芯片&#xff1f;是的&#xff0c;但也不完全是。 人们经常把半导体芯片归类为硬件产业&#xff0c;但实际上…

Vue3的模板语法插值表达式用法

在template中输入“5 3” &#xff0c;是没有运算能力的&#xff0c;只会把字符直接显示出来&#xff0c;代码如下&#xff1a; <template><view>这是demo</view><view>5 3</view><navigator open-type"navigateBack"><vi…

Opencv+python模板匹配

我们经常玩匹配图像或者找相似&#xff0c;opencv可以很好实现这个简单的小功能。 模板是被查找目标的图像&#xff0c;查找模板在原始图像中的哪个位置的过程就叫模板匹配。OpenCV提供的matchTemplate()方法就是模板匹配方法&#xff0c;其语法如下&#xff1a; result cv2.…

SerialportToTcp①

窗体 效果&#xff1a;串口和网口旁边的是panel当客户端或者服务器发送消息的时候会闪烁&#xff0c;下面的的textbox当接收到接受或者发送的数据会增加数量&#xff0c;心跳机制单选框可以开关&#xff0c;可设置心跳间隔和内容&#xff0c;重置按钮重置串口数据&#xff0c;…

轻度图像处理工具,匹敌photoshop

一、简介 1、一款功能强大的在线图片编辑工具,用户可以将其安装为渐进式网页应用(PWA)。它提供了与 Photoshop 相似的核心功能,能够满足大多数图像编辑需求,非常适合那些不愿或无法安装 Photoshop 的用户。即使使用免费版本,用户也能享受所有功能,是轻度图像处理的理想选…

python(基础语法,pandas,numpy,正则表达式,数据预处理)

python学习推荐网址&#xff1a; 白月黑羽 一、语法基础 目标&#xff1a; • list、tuple、set、dict的基本用法 • 内置函数 len&#xff08;&#xff09;&#xff0c; eval&#xff08;&#xff09;&#xff0c;range&#xff08;&#xff09;&#xff0c;sort&#xff08;…

Django 一对一关系

作用&#xff1a; 两个数据库表建立外键关系当外键表的数据被删除时&#xff0c;主表的数据也会一并删除。 1&#xff0c;添加表模型 Test/app8/views.pyfrom django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email …

【C语言】学生管理系统:完整模拟与实现

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 &#x1f525;引言 本篇文章为修改了在校期间实训报告&#xff0c;使用C…

【网络架构】lvs集群

目录 一、集群与分布式 1.1 集群介绍 1.2 分布式系统 1.3 集群设计原则 二、LVS 2.1 lvs工作原理 2.2 lvs集群体系架构 ​编辑 2.3 lvs功能及组织架构 2.4 lvs集群类型中术语 三、LVS工作模式和命令 3.1 lvs集群的工作模式 3.1.1 lvs的nat模式 3.1.2 lvs的dr模式 …

为什么有些人思考得多,决策反而不好?避免过度拟合的终极指南:决策高手的秘密:灰度认知,黑白决策

在决策过程中&#xff0c;过度关注细节可能导致决策效果不佳&#xff0c;这被称为“过度拟合”。为了避免这种情况&#xff0c;我们需要进行“灰度认知&#xff0c;黑白决策”&#xff0c;即接受不确定性&#xff0c;关注整体趋势&#xff0c;设定明确目标&#xff0c;简化选择…

【JD-GUI】MacOS 中使用Java反编译工具JD-GUI

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明概念理解一、基础环境说明1.1 硬件环境1.2 软件环境 二、下载与安装2.1 选择对应版本2.2 解压运行排除异常&#xff1a;2.3 关于…

Geotools系列说明之LineString仿高德航路截取说明

需求分析 我们在做webgl的时候经常会遇到这样的需求&#xff0c;计算给定航路的拥堵情况&#xff0c;不同的拥堵显示不同的颜色&#xff0c;航路截取计算等等。基于这类问题统一都可以使用LineString进行处理 实现思路 如上图所示&#xff0c;航路是几个关键的点然后练成线&a…

05 docker 镜像

目录 1. 镜像 2. 联合文件系统 3. docker镜像加载原理 4. 镜像分层 镜像分层的优势 5. 容器层 1. 镜像 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;我们把应用程序和配置依赖打包好行程一个可交付的运行环境&#xf…

监控平台zabbix对接grafana

目录 1.安装grafana并启动 2.浏览器访问 3.导入zabbix数据&#xff0c;对接grafana 4.如何导入模板 5.使用zabbix监控nginx并发量连接数 5.1 修改nginx配置 5.2 编写监控数据脚本 5.3 设置键值 5.4 在zabbix web端完成自定义监控项 5.5 连接到grafana 以上一篇博客&l…