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.mzph.cn/news/863906.shtml

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

相关文章

C语言 | Leetcode C语言题解之第200题岛屿数量

题目&#xff1a; 题解&#xff1a; void cleanLand(char** grid, int gridSize, int ColSize,int row,int column) {if(grid[row][column] 1){//不等于1则清零grid[row][column] 0;}else{//不等于1则返回return ;}int newRow;int newColumn;//上if(row ! 0) //还能上{ne…

每天五分钟计算机视觉:人体姿势识别

本文重点 人体姿势识别是计算机视觉领域的一个重要研究方向,旨在通过图像或视频数据自动检测并识别出人体的各种姿势和动作。随着深度学习技术的快速发展,基于神经网络的方法在这一领域取得了显著进展。神经网络,特别是卷积神经网络(CNN)和循环神经网络(RNN),因其强大…

基于YOLOv9的PCB板缺陷检测

数据集 PCB缺陷检测&#xff0c;我们直接采用北京大学智能机器人开放实验室数据提供的数据集&#xff0c; 共六类缺陷 漏孔、鼠咬、开路、短路、杂散、杂铜 已经对数据进行了数据增强处理&#xff0c;同时按照YOLO格式配置好&#xff0c;数据内容如下 模型训练 ​ 采用YOLO…

idea乱码问题解决

乱码问题产生的根本原因 数据的编码和解码使用的不是同一个字符集 使用了不支持某个语言文字的字符集 Tomcat控制台乱码 在tomcat10.1.7这个版本中,修改 tomcat/conf/logging.properties中,所有的UTF-8为GBK即可 sout乱码问题,设置JVM加载.class文件时使用UTF-8字符集 设置虚…

Kafka 集群 Topic、消息大小、节点格式上限管控原理

Kafka 集群 Topic、消息大小、节点格式上限管控原理 kafka 集群对创建topic的数量有限制吗,发送的消息内容大小有限制吗,kafka集群节点的个数有限制吗, 如何来合理的设置topic的分区数量和副本数量?Kafka 集群在创建 Topic 的数量、发送的消息内容大小、集群节点的个数方面…

RedisAtomicInteger并发案例

&#x1f370; 个人主页:__Aurora__ &#x1f35e;文章有不合理的地方请各位大佬指正。 &#x1f349;文章不定期持续更新&#xff0c;如果我的文章对你有帮助➡️ 关注&#x1f64f;&#x1f3fb; 点赞&#x1f44d; 收藏⭐️ RedisAtomicInteger 提供了对整数的原子性操作&a…

【SkiaSharp绘图12】SKCanvas方法详解(一)清空、裁切区域设置、连接矩阵、注释、弧与扇形、图集、九宫格绘图、圆

文章目录 SKCanvas 方法Clear 清空ClipPath/ClipRect/ClipRegion/ClipRoundRect 设置裁切区域Concat 连接矩阵DrawAnnotation绘制注释DrawArc绘制椭圆弧、扇形DrawAtlas绘制图集(一个图像、多个区域、多个缩放、一次绘制&#xff09;DrawBitmap绘制图像DrawBitmapNinePatch九宫…

防火墙部署基本方法

防火墙部署基本方法 防火墙部署是确保网络安全的重要步骤&#xff0c;通过合理的部署和配置防火墙&#xff0c;可以有效地保护网络资源&#xff0c;防止未经授权的访问和网络攻击。以下是防火墙部署的基本方法&#xff0c;包括部署步骤、配置建议和常见的部署拓扑。 一、部署…

深度学习评价指标:Precision, Recall, F1-score, mIOU, 和 mDice

在深度学习和机器学习中&#xff0c;评价模型性能是至关重要的一环。本文将详细讲解一些常见的评价指标&#xff0c;包括精确率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1-score、平均交并比&#xff08;mIOU&#xff09;和平均Dice系数&am…

Adobe Magento OR Commerce电子商务系统 XXE漏洞复现(CVE-2024-34102)

0x01 产品简介 Magento最初是一个开源的电子商务平台,后来被Adobe公司收购,并更名为Adobe Commerce,是一个功能丰富、灵活且可扩展的电子商务解决方案。Adobe Commerce提供了强大的定制能力,允许商家根据自己的业务需求进行灵活调整。通过人工智能和机器学习技术,为B2B和…

5.6 0-1背包问题

#include<iostream> #include<string> #include<stdlib.h> #include<bits/stdc.h> using namespace std;int c;//背包容纳的重量 int n;//物品数量 int cw;//当前重量 int cv;//当前价值 int bestv;//当前最优价值 int x[100]; int bestx[100]; struct…

Linux 交叉编译工具链格式 sqlite3编译示例

1、交叉编译工具链 1.1 定义 交叉编译工具链是一个由编译器、连接器和解释器组成的综合开发工具集&#xff0c;它允许开发者在一个平台上&#xff08;例如高性能的PC或服务器&#xff09;编译生成另一个平台&#xff08;例如嵌入式系统或不同的操作系统和硬件架构&#xff09…

pyqt 文件浏览列表视图和图标视图

pyqt 文件浏览列表视图和图标视图 目的效果代码 目的 使用pyqt实现文件浏览列表视图和图标视图&#xff0c;像电脑文件浏览一样。如下图所示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QToolBar, QAction, Q…

大数据领域的常用开发语言详解

大数据开发语言主要包括以下几个&#xff0c;以下是它们在大数据开发领域的优缺点和应用场景的详细说明&#xff1a; 1. Java 优点&#xff1a; 跨平台性&#xff1a;Java的“一次编写&#xff0c;到处运行”的特性使得其可以轻松地运行在多个操作系统上。面向对象&#xff…

OpenCV学习之cv2.subtract函数

OpenCV学习之cv2.subtract函数 一、简介 cv2.subtract 是 OpenCV 库中的一个基本函数&#xff0c;用于对两幅图像进行逐像素的减法操作。 二、基本语法 cv2.subtract(src1, src2, dstNone, maskNone, dtypeNone)三、参数说明 src1 (numpy.ndarray): 第一幅输入图像或数组。 …

上海市计算机学会竞赛平台2023年6月月赛丙组差分求和

题目描述 给定一个整数序列&#xff0c;对其中任意两个数&#xff0c;计算后项减前项的差&#xff0c;输出这些差的差。 例如对于 &#x1d44e;1,&#x1d44e;2,&#x1d44e;3,&#x1d44e;4a1​,a2​,a3​,a4​ 来说&#xff0c;输出 (&#x1d44e;2−&#x1d44e;1)…

html2pdf.js生成PDF空白页面问题解决办法

现象 1、Scale参数1.8时&#xff0c;安卓手机在20页以上可能爆掉生成空白页 2、Scale参数1.8时&#xff0c;苹果手机在5页以上可能爆掉生成空白页 原因是浏览器支持画布的尺寸大小限制 解决办法 分页生成&#xff0c;一个元素一页这样不可能超过限制尺寸。 查到解决代码&a…

代码随想录算法训练营第四十五天|198.打家劫舍 213.打家劫舍II 337.打家劫舍III

LeetCode 198.打家劫舍 题目链接&#xff1a;198.打家劫舍 踩坑&#xff1a;很多坑&#xff0c;自动把它当作背包问题了&#xff0c;但其实这就是一个普通的动态规划题目&#xff0c;背包问题本质上是一个二维问题&#xff0c;只是可以简化成一维&#xff0c;想要抽象为背包问…

探索Scala的类型奥秘:协变与逆变全解析

&#x1f504; 探索Scala的类型奥秘&#xff1a;协变与逆变全解析 在Scala的强类型系统中&#xff0c;协变&#xff08;covariance&#xff09;和逆变&#xff08;contravariance&#xff09;是两个核心概念&#xff0c;它们允许我们在泛型编程中更灵活地使用类型。本文将深入…

03-权限绕过漏洞

一、基础知识 水平越权 水平越权是指用户在系统中拥有超出其权限范围的访问权限。这可能导致安全漏洞和潜在的风险&#xff0c;因为用户可以访问他们不应该有权访问的敏感信息或执行他们不应该执行的操作。 垂直越权 垂直越权是指用户或攻击者利用系统中的漏洞或错误配置&a…