本文档记录在使用 Remote SSH 时可能遇到的问题并提供解决方法。
|
错误码 |
错误内容 |
解决方案 |
|---|---|---|
|
1001 |
创建目录失败 |
可能是因为磁盘空间不足或无目录的写入权限。解决方案如下:
|
|
1002 |
创建目录失败 |
同 1001 错误码。 |
|
1003 |
远程主机上启动 TRAE CN 服务端失败 |
检查远程主机的系统版本是否满足要求。 |
|
2001 |
下载安装包失败 |
检查网络联通性,然后重试。 |
|
2002 |
解压安装包失败 |
可能是由于安装包的下载过程被截断,导致下载的文件异常,重新安装后再尝试解压。 |
|
3001 |
远程主机上启动 TRAE CN 服务端失败 |
检查远程主机的系统版本是否满足要求。 |
|
连接超时原因 |
解决方案 |
|---|---|
|
服务器未启动,或网络无法连接 |
在本地终端执行
|
|
远程主机名称包含大写字母 |
部分 TRAE CN 客户端版本存在兼容性问题:当
|
|
不支持服务器的默认 shell |
目前,一些 shell 会导致连接异常,比如 fish。将用户的默认 shell 改成 bash 和 zsh 以解决该问题。 |
|
本地 |
如果挪动过本地的 |
若以上解决方案仍无法解决你的问题,可以通过《支持》中提供的渠道联系我们。请在问题反馈中提供以下信息,以便我们尽快定位问题并协助你解决:
ssh -vvv <host> 命令的完整输出结果,我们会根据此信息定位超时的原因。
ssh -vvv test
# 此处会输出大量日志,请复制完整的日志
如果 AI 报告 997 错误,这通常表示你的服务器存在网络连接问题。
执行以下命令,确认你的服务器是否能成功连接到 TRAE CN 的服务:
curl -vvv "https://trae.cn"
如果以上 curl 命令在执行时报错,请先解决网络问题。
在 Linux 上,可能会由于 GLIBC 问题导致进程无法启动。
问题现象
/etc/thunder/libthunder.so)。根本原因
TRAE CN Server 为了保证在老旧系统上的兼容性,自带了一个较旧版本的 libstdc++.so.6。
当系统环境中有程序(或被强制注入的库)由新版编译器编译,并依赖新版 GLIBCXX 符号时,TRAE CN 自带的旧库无法满足需求,从而导致加载失败。
解决方案
在 Linux 服务器上执行以下命令,检查是否存在 libstdc++ 版本冲突。
grep -r "version \`GLIBCXX_.*' not found" ~/.trae-cn-server/manager-logs/
如果命令输出类似以下内容,说明确实存在 libstdc++ 版本冲突,继续完成以下步骤来解决该冲突。
.../libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /etc/thunder/libthunder.so)
找到 TRAE CN Server 的安装目录。
提示
该目录通常在 ~/.trae-cn-server/bin/stable-<commit-id>-debian10/ 下。你也可以从报错日志中提取准确的路径。
重命名自带的 libstdc++.so.6:
lib/trae-helper 目录(或报错日志中指示的包含 libstdc++.so.6 的目录)。# 示例路径,请根据实际的路径调整
cd ~/.trae-cn-server/bin/stable-*-debian10/lib/trae-helper/
# 备份并重命名自带的库文件,迫使程序使用系统的 libstdc++.so.6
mv libstdc++.so.6 libstdc++.so.6.bak
重启服务:
若要在 Devbox(远程 Linux 开发机)上启动 Docker 容器,并在本地电脑的 TRAE 中通过 Remote SSH 进入该容器进行开发,可以按照以下步骤操作。
提示
代码块中的内容为示例,你需要将粗体内容替换为自己的实际配置。
确保容器内已安装并启用 OpenSSH 服务。
如果基础镜像未包含 SSH 服务,可以构建一个支持 SSH 登录(root + 密码)的镜像:
mkdir -p temp_docker
cat > temp_docker/Dockerfile <<'EOF'
FROM <your_image>
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
EOF
cd temp_docker
docker build -t ssh01 .
字段说明:
<your_image>:你的基础镜像(如 ubuntu:20.04)root:password:容器内 root 用户的密码(后续用于 SSH 登录容器)在 Devbox 上启动容器,并将容器的 SSH 端口映射到 Devbox 本机的端口。
以下命令中,容器的 22 端口(SSH)被映射到 Devbox 的 2222 端口。
docker run -d -p 2222:22 ssh01
在本地电脑中,编辑 SSH 配置文件:
~/.ssh/config
写入以下内容:
Host devbox
HostName 10.x.x.x
User root
Host docker-container
HostName localhost
User root
Port 2222
ProxyJump devbox
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
字段说明:
devbox:远程开发机(跳板机)docker-container:运行在 devbox 上的容器ProxyJump devbox:表示先连接 devbox,再从 devbox 访问 docker-containerHostName localhost:这里的 localhost 指的是 Devbox 本机(因为连接已跳转到 devbox 上执行)在本地电脑的终端中,依次测试连接:
执行以下命令,测试 devbox 是否可被连接。password 为第一步中配置的密码。
ssh devbox
由于 devbox 是代理 SSH,因此必须首先确保 devbox 的 SSH 服务已正确配置并运行,且本地电脑到 devbox 的网络连接畅通。
执行以下命令,测试 docker-container 是否可被连接。
ssh docker-container
此时,会先连接 devbox,再连接 localhost:2222(即 devbox 上的容器)。使用的是容器中设置的 root:password。
在 TRAE 中通过 Remote SSH 连接 docker-container,即可进入容器进行远程开发。详细步骤参考连接远程主机。