Skip to content

Latest commit

 

History

History
117 lines (76 loc) · 4.49 KB

File metadata and controls

117 lines (76 loc) · 4.49 KB

回滚指南

回滚按迁移进度分层进行。目标是只撤回本教程新增或修改的内容,保留当前仍工作的 Desktop 会话、其他 SSH Host、代理客户端和 Codex 状态。

回滚前

  1. 保存所有 Desktop 与 VS Code 工作;
  2. 在远端项目中记录 git status --short 和未提交差异;
  3. 找到操作前的精确 SSH 与 VS Code Server 环境备份;
  4. diff -u 检查备份与现状;
  5. 若存在与本教程无关的并发修改,不要整文件覆盖,改为人工最小编辑。

仓库不提供自动回滚脚本,也不会结束任何进程。

情形 A:只添加了 VS Code 与维护别名

这是最简单且最安全的回滚。

1. 停止建立新的 VS Code 连接

保存并关闭显示 SSH: codex-vscode 的窗口。不要操作 Desktop 会话。由于新版禁用 ControlPersist,SSH 连接正常结束后其转发应随之消失;如果端口仍在,先确认占用者。

2. 撤回 VS Code Server 专用环境

在服务器上只删除这对标记之间由本教程加入的行:

# BEGIN CODEX_VSCODE_PROXY
...
# END CODEX_VSCODE_PROXY

如果文件在操作前不存在且现在只包含该标记块,可在确认无其他内容后由你人工处理。不要删除整个 ~/.vscode-server,不要改全局 shell 初始化文件。

3. 删除两个新增 Host 块

在 Mac 的个人 SSH 配置中,只删除 Host codex-vscodeHost codex-shell 的新增块。每个块在下一个 HostMatch 指令前结束。不要改 Desktop Host。

4. 恢复 VS Code 设置

  • 本地 User Settings:移除本次新增的 remote.SSH.remotePlatform 映射或恢复旧值;
  • Remote Settings:恢复本次改变的 http.proxyhttp.proxySupport
  • 若为特定错误加入了 extensions.supportNodeGlobalNavigator,恢复原值。

同名字段若在迁移前已经存在,应恢复旧值而不是直接删除。

情形 B:已经迁移 Desktop Host

只在维护窗口中执行:

  1. 保存并正常结束 Desktop 工作;

  2. 比较当前 SSH 配置与迁移前备份:

    diff -u "$HOME/.ssh/config.backup.YYYYMMDD-HHMMSS" "$HOME/.ssh/config"
  3. 仅恢复 Desktop Host 的原始行;不要恢复无关 Host 的旧版本;

  4. 运行 ssh -G,确认 Desktop 的 RemoteForward、连接复用设置和端口与迁移前记录一致;

  5. 正常重连 Desktop 并验收;

  6. 再按“情形 A”撤回 VS Code 与维护别名。

若精确备份确认只包含本次变更且期间没有其他合法改动,才可以考虑整文件恢复;默认仍推荐最小编辑。

情形 C:旧 master socket 仍存在

配置回滚不会自动结束已经运行的旧 master。若它仍承载工作,保留它。只有同时满足以下条件时才考虑优雅结束:

  • 已保存所有依赖会话;
  • 已确认 socket 的精确路径与 Host 归属;
  • ssh -S /exact/path/to/socket -O check your-current-host 返回预期连接;
  • 你明确准备结束该连接。

随后才可使用同一精确路径执行 -O exit。不要使用通配路径,不要批量终止 SSH。

只读验收

SSH 静态配置

ssh -G codex-desktop 2>/dev/null | awk '
  $1 == "remoteforward" ||
  $1 == "controlmaster" ||
  $1 == "controlpath" ||
  $1 == "controlpersist"
'

ssh -G codex-vscode 2>/dev/null | awk '$1 == "remoteforward"'
ssh -G codex-shell 2>/dev/null | awk '$1 == "remoteforward"'

OpenSSH 会为未知名字产生默认有效配置,所以命令退出成功不代表 Host 块仍存在。重点是新增别名不再解析出本教程的转发。

服务器监听

ss -lnt | awk '$4 ~ /127\.0\.0\.1:17890$|127\.0\.0\.1:17892$/'

端口仍在不代表可以结束占用者;它可能属于未正常关闭的目标连接或其他合法服务。先识别来源。

备份与敏感信息

在两个客户端、项目文件和原连接都验收完成前保留备份。备份可能包含真实地址、用户名、私钥路径和个人 Host,不得加入 Git、公共 issue、截图或发布包。是否归档或删除由你自行决定,仓库不会自动处理。

禁止扩大范围

回滚不需要:

  • 结束全部 SSH 进程;
  • 退出 Codex 登录或删除 Codex 状态;
  • 删除整个 VS Code Server 目录;
  • 重置 EasyTier、Clash 或系统代理;
  • 覆盖后来新增的其他 SSH Host;
  • 删除私钥、known_hosts 或代理配置。

若 Desktop 在回滚前已异常,先保存证据并回到 故障排查,不要继续扩大修改。