Github Copilot Chat 在 Remote SSH中设置为本地运行

内网环境 VSCode AI 助手失效?一招 SSH+SCP “邪修” 注入法拯救 Agent

背景与痛点

众所周知,由于一些网络限制或企业内网的安全策略,很多跑在远程服务器(Server 端)上的开发环境无法直接访问外网,导致 GitHub Copilot Chat 或 Claude Code 等 AI 编程助手直接罢工。

为了绕过这个限制,很多开发者会选择修改 VSCode 的 settings.json,强制将这些 AI 插件运行在本地(Local UI),而不是远程(Workspace):

"remote.extensionKind": {
    "GitHub.copilot": ["ui"],
    "GitHub.copilot-chat": ["ui"],
    "anthropic.claude-code": ["ui"]
}

但是,按下葫芦浮起瓢。 虽然插件能连上网、能对话了,但 Agent 模式(比如自动读取报错、自动修改文件、执行命令)会遭遇毁灭性打击。AI 会彻底“迷失”,出现不识别 Remote Workspace 的情况。你让它改一个远程服务器上的 train.py,它可能会在你本地电脑的 C 盘里疯狂寻找,或者给出一个完全无法执行的本地路径。

为什么会“迷失”?

当你把 extensionKind 强制设为 [“ui”] 时,插件的运行上下文就从远程服务器被强行拉回了本地物理机。

对于 AI 来说: 它眼中的工作目录变成了你的本地宿主机。

对于你来说: 你真正在编辑的代码和终端环境全在 Remote 远端。

这就好比你请了一个线上助理帮你整理办公室,但他只能看到你家里的书桌,完全摸不到你公司里的文件。

“邪修”解法:Prompt 注入与系统权限接管

既然 AI 被困在了本地,且失去了直接操作远程文件系统的 API 权限,那我们就退回最原始、最硬核的运维方式——给它注入一套基于 SSH 和 SCP 的行为准则。

这种“邪修”办法的核心思路是:在 Agent 模式下,通过 System Prompt 或 Memory 注入,强制 AI 把自己当成一个只能通过 SSH 协议与目标机器交互的外部控制器。

你不让我用 VSCode 的内部 API 改文件?那我就用 scp 硬写;
你不让我直接运行终端命令?那我就用 ssh 远程执行。

0x04 核心 Prompt/Memory 模板
你可以将以下提示词配置到 AI 的自定义指令(如 .github/copilot-instructions.md),或者直接写入 Agent 的 Memory 中:

🎯 远程开发 Agent 行为覆盖指令 (SSH/SCP Override Mode)

【当前环境认知】
你当前运行在我的本地物理机上,但我们正在开发的项目代码位于远程 Linux 服务器上。你无法直接通过你的默认 Workspace API 访问或修改目标文件。

【服务器信息】

Host: remote_dev (已配置免密登录)

Remote Workspace 绝对路径: /home/user/my_project/

【行为准则:命令执行】
当你需要执行任何终端命令(如运行脚本、查看日志、安装依赖)时,绝对禁止在本地直接执行。你必须将命令包装在 SSH 中:
ssh remote_dev “cd /home/user/my_project/ && <你的命令>”

【行为准则:文件修改】
当你需要创建或修改文件时,绝对禁止使用你内置的文件修改工具。你必须采取以下步骤:

在本地临时目录生成好修改后的完整代码文件。

使用 SCP 命令将文件覆盖到远端:
scp ./local_temp_file.py remote_dev:/home/user/my_project/target_file.py

清理本地临时文件。

【文件读取】
如果你需要读取远程文件内容来分析上下文,请使用:
ssh remote_dev “cat /home/user/my_project/target_file.py”

0x05 进阶优化与避坑指南
如果想让这套“邪修”方案运转得如丝般顺滑,你还需要做好以下基建:

绝对的免密登录 (SSH Keys):
这是重中之重。AI 无法处理交互式的密码输入终端(TTY)。请确保你的本地机器到远程服务器配置了 SSH 公钥免密登录,并在 ~/.ssh/config 中配置好 Alias(比如上文的 remote_dev),这样可以极大地缩短 AI 生成的命令长度,降低出错率。

善用增量替换 (Sed / Patch):
如果你在使用类似 Claude Code 这种具备高级执行能力的 Agent,且每次传输整个大文件导致 SCP 较慢。可以在 Prompt 中教它使用 ssh remote_dev “sed -i ‘s/old/new/g’ file” 来进行小范围的精准外科手术式修改。

防暴走机制:
在 Prompt 中加入一句:“在执行任何涉及 rm 或覆盖核心配置的 SSH 命令前,必须先输出命令并等待我的确认。” 避免 AI 幻觉把远端服务器搞崩。

总结

把 extensionKind 改为 ui 是我们在严苛网络环境下的无奈之举,而通过 Prompt 注入 SSH/SCP 流程,则是我们在绝境中夺回 Agent 生产力的“黑魔法”。

虽然这种方式会增加一定的网络通信开销和 Prompt Token 消耗,但在你急需 AI 帮你梳理报错日志或批量重构远端代码时,看着终端里自动飞快执行的 SSH 命令,你会觉得这一切折腾都是值得的。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容