分享一个远程开发模拟remote-ssh的方法(适合系统太老无法remote-ssh情况,或者在必须要使用本地的agent)

废话少说:自定义一个SHELL脚本,把命令全部通过ssh在远程的服务器执行;使用mutagen把远程的项目同步到本机的相同位置。 这样子就可以模拟remote-ssh,对于一些比较旧的系统无法使用较新版本的vscode remote-ssh连接时使用;此外,因为实际上还是在本地开发,所以还可以利用本...
分享一个远程开发模拟remote-ssh的方法(适合系统太老无法remote-ssh情况,或者在必须要使用本地的agent)
分享一个远程开发模拟remote-ssh的方法(适合系统太老无法remote-ssh情况,或者在必须要使用本地的agent)

废话少说:自定义一个SHELL脚本,把命令全部通过ssh在远程的服务器执行;使用mutagen把远程的项目同步到本机的相同位置。

这样子就可以模拟remote-ssh,对于一些比较旧的系统无法使用较新版本的vscode remote-ssh连接时使用;此外,因为实际上还是在本地开发,所以还可以利用本地的一些便利(比如网络环境配置;Agent的全局设置等等)

缺点是cmd的速度稍微慢了一点(受限于网络环境)
好处是我现在可以在本地启动agy来远程开发了 :nerd_face:

这里是我使用的SHELL脚本(注意有我个人的配置,需要自行按需修改):

image

#!/bin/bash
# ==============================================================================
# Google Antigravity CLI (agy) 绝对路径对齐版远程桥接驱动
# ==============================================================================

REMOTE_HOST="MCG-V100"
CONTAINER_NAME="lyc-docker"

if [ "$1" = "-c" ]; then
    RAW_CMD="$2"

    # 由于本地与远端路径完全一致,直接动态获取本地当前所在绝对路径 ($PWD)
    # 并在远端 Docker 内先切入该路径,再执行指令
    EXEC_BLOCK="cd $PWD && $RAW_CMD"

    # 符号转义规避:Base64 编码
    B64_CMD=$(echo -n "$EXEC_BLOCK" | base64 -w 0)

    # 投递至远端 Docker 容器内执行
    ssh -q "$REMOTE_HOST" "echo '$B64_CMD' | base64 -d | docker exec -i $CONTAINER_NAME bash"
else
    # 交互式后备通路:保持目录一致性击穿
    exec ssh -t "$REMOTE_HOST" "docker exec -it $CONTAINER_NAME bash -c 'cd $PWD && exec bash'"
fi

在使用的时候,只需要先在shell里面设置环境变量:

export SHELL=~/agy_bridge.sh

然后在这个shell里面启动agy,claude code,codex,vscode 就会继承这个shell,之后在vscode里面开启的shell就是远程shell了;agent执行命令也是在远程执行。

如果把mutagen同步的目录和本地的目录设置成完全相同的位置,几乎可以让Agent无感地实现在本地进行远程开发。


个人觉得比ssh-mcp之类的方案要优雅一点(如果只是为了解决remote-ssh的问题)

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文