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

发布于:2024-07-01 ⋅ 阅读:(19) ⋅ 点赞:(0)

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 yes

Host <远程主机名称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