GenStudio 全新上架 ComfyUI 工作流托管服务GenStudio 全新上架 ComfyUI 工作流托管服务 ,已适配主流 ckpt 模型与节点了解更多
Skip to content
回到全部文章

VS Code 远程开发:为开发机、AICoder 提供本地般的开发体验

本文将介绍如何通过在 Visual Studio Code 中配置远程开发环境,使你能够像本地开发一样使用远程开发机或 AICoder。

alt text

NOTE

VS Code 左下角显示已连接到智算云平台的 AICoder。AICoder 是智算云平台提供的免费提供小规格的 CPU 实例资源,方便用户完成训练前的数据准备和文件上传等任务。

什么是 Remote - SSH 扩展?

Visual Studio Code 的 Remote - SSH 扩展 允许我们通过 SSH 连接远程主机,提供了本地级别的开发体验。

  • 在 VS Code 编辑器中随意操作远程机器上的文件和文件夹
  • 在 VS Code 集成终端中运行命令
  • 使用完整的智能感知(补全)、代码导航和调试
  • 安装其他扩展,充分利用 VS Code 的所有其他功能

前提条件

在开始之前,请确保你已完成以下步骤:

  • 本地安装 Visual Studio Code

  • 本地已安装兼容的 OpenSSH 客户端(PuTTY 不支持)。

    操作系统安装指令
    macOS已预装。
    Windows 10 1803+/Server 2016/2019 1803+安装 Windows OpenSSH 客户端
    较早版本的 Windows安装 Git for Windows
    Debian/Ubuntusudo apt-get install openssh-client
    RHEL/Fedora/CentOSsudo yum install openssh-clients

安装 Remote-SSH 扩展

安装 Remote - SSH 扩展 ,也可以选择安装 Remote Development 远程开发扩展包

alt text

NOTE

或在 VS Code 中搜索 Remote - SSH 或 Remote Development 进行安装。

获取 SSH 主机连接信息

为了在 Remote - SSH 扩展中添加智算云平台的 SSH 远程主机,我们需要登录智算云平台,获取开发机或 AICoder 的 SSH 配置信息。

WARNING

在继续之前,请确认你已在可以成功 SSH 远程登录开发机或 AICoder。

  • 开发机支持 SSH 用户名/密码认证,也支持基于 SSH 密钥的认证。如需帮助,请参考 SSH 远程登录
  • 由于 AICoder 仅支持基于 SSH 密钥的身份认证,所以必须提前在机器内添加您的 SSH 公钥。如需帮助,请参考添加 SSH 公钥指南

开发机

登录智算云平台,一键复制开发机 SSH 登录命令。

alt text

AICoder

登录智算云平台,打开 AICoder Shell。如果是首次使用,可能需要时间来申请和创建 AICoder 实例。

alt text

在 AICoder Shell 中输出 SSH banner 信息后,点击右上角的密钥按钮,复制弹窗中的 SSH 连接命令:

alt text

添加 SSH 远程主机

获取开发机或 AICoder 的 SSH 连接信息后,可以添加到本地的 SSH 配置文件中。

在左侧找到 Remote - SSH 扩展,点击新建远程

alt text

NOTE

或直接在 VS Code 中,按 ctrl + shift + p 打开命令面板,输入 "remote",从命令面板中选择 Remote-SSH: Add New SSH Host... ,添加一个 SSH 远程连接。

在 VS Code 顶部的弹窗中,直接粘贴之前复制的开发机或 AICoder 的 SSH 连接命令,

alt text

随后选择要使用的配置文件。扩展会自动处理剩下的配置。

alt text

例如,输入 AICoder 的 SSH 连接命令 ssh -J ssh-jumper.cloud.infini-ai.com root@aic-c7lkg5b23mieqw7d 会生成以下配置:

sh
Host aic-c7lkg5b23mieqw7d
  HostName aic-c7lkg5b23mieqw7d
  ProxyJump ssh-jumper.cloud.infini-ai.com
  User janedoe

添加成功后可直接连接,或者左侧扩展中查找已添加的 SSH 主机。

连接成功后,VS Code 会自动设置环境。你可以通过状态栏查看连接的主机,并使用 File > Open...File > Open Workspace... 打开远程机器上的任意文件夹或工作区。

alt text

NOTE

上图中 VS Code 已连接到智算云平台的 AICoder。AICoder 是智算云平台提供的免费提供小规格的 CPU 实例资源,方便用户完成训练前的数据准备和文件上传等任务。

已知限制

Remote - SSH 限制

  • 建议使用基于密钥的认证。密码和其他令牌不会保存。
  • 较旧的 Linux 发行版需要安装必要先决条件的变通方法。
  • Windows 上不支持 PuTTY。
  • 使用 SSH 克隆 Git 仓库且 SSH 密钥设置了 passphrase ,VS Code 的 pull 和 sync 功能可能会挂起。解决方法包括:使用无 passphrase 的 SSH 密钥、使用 HTTPS 地址,或从命令行运行 git push

VS Code 扩展限制

  • 许多扩展可以在远程 SSH 主机上工作。但某些功能可能失效或无法正常工作。如果遇到扩展问题,请查看常见问题和解决方案,并在报告问题时告知扩展作者。
  • 不支持使用 VS Code 的 Dev Containers 扩展

故障排除:连接挂起或失败

如果 VS Code 在尝试连接时挂起或超时,你可以尝试以下步骤来解决问题。

清理远程机器上的 VS Code Server

Remote - SSH 扩展提供了一个命令,用于清理远程机器上的 VS Code Server,Remote-SSH: Uninstall VS Code Server from Host...。该命令会执行以下两项操作:终止所有运行中的 VS Code Server 进程并删除服务器安装的文件夹。

如果你想手动执行这些步骤,或者该命令对你不起作用,可以运行以下脚本:

sh
# 终止服务器进程
kill -9 $(ps aux | grep vscode-server | grep $USER | grep -v grep | awk '{print $2}')
# 删除相关文件和文件夹
rm -rf $HOME/.vscode-server # 或 ~/.vscode-server-insiders

SSH 主机上的 VS Code Server 安装在 ~/.vscode-remote 目录下,你也可以检查该位置。

检查安装过程中是否使用了非默认 shell

如果在 SSH 主机上的 .bash_profile 或其他启动脚本中使用非默认 shell,可能会破坏 VS Code 的远程服务器安装脚本。如果遇到问题,可使用 chsh 更改远程机器上的默认 shell。

总结

通过以上步骤,你可以配置基于 SSH 的 VS Code 远程开发环境,实现像本地开发一样使用远程开发机或 AICoder。希望这些步骤可以帮助你顺利完成配置并提高开发效率。

参考资料