问题现象
在修改本机 Tailscale 设备名称后,VS Code Remote-SSH 无法正常连接远程 Ubuntu 服务器,连接日志持续显示:
Waiting for server log...初步排查后确认,网络与 SSH 链路均正常,实际故障位于远端 VS Code Server 进程状态。
排查过程
首先验证 Tailscale 连通性:
tailscale ping <server-ip>测试正常,说明客户端与服务器之间的 Tailscale 网络可用。
随后检查 SSH 端口:
nc -vz <server-ip> 22返回:
Connection to <server-ip> port 22 succeeded!说明 TCP 22 端口可正常访问。
进一步通过 OpenSSH 验证:
ssh -vvv user@<server-ip>日志显示:
Authenticated to <server-ip> using "publickey".并能够正常进入远程 Shell。
因此可以确认以下组件均工作正常:
Tailscale 网络
TCP 22
OpenSSH Server
SSH 公钥认证
远程 Linux 用户登录故障范围由此缩小至 VS Code Remote-SSH 及远端 VS Code Server。
VS Code Server 状态检查
在服务器上检查当前用户的 VS Code 相关进程:
ps -u "$USER" -f | grep -E 'vscode|code-[0-9a-f]' | grep -v grep可以看到已有 VS Code Server 和 Agent Host 进程存在。
随后查看服务端日志:
tail -n 100 ~/.vscode-server/cli/agent-host-stable.log日志中包含:
Server ready
Server started
Listening on 127.0.0.1:<port>说明 VS Code Server 可以正常启动,但现有远端进程或会话状态可能存在异常,导致新的 Remote-SSH 连接无法正常完成初始化。
处理方法
在服务器端执行:
pkill -u "$USER" -f 'vscode-server' 2>/dev/null
pkill -u "$USER" -f '\.vscode-server' 2>/dev/null随后重新发起 VS Code Remote-SSH 连接,连接恢复正常。
其中:
-u "$USER"用于限制操作范围,仅终止当前用户所属的 VS Code Server 相关进程,避免影响同一服务器上的其他用户。
不建议直接执行:
pkill -f vscode-server在多人共享环境中,该命令可能匹配其他用户的 VS Code 相关进程,并产生:
Operation not permitted更不建议使用:
sudo pkill -f vscode-server否则可能导致其他用户的 Remote-SSH 会话被一并终止。
根因分析
根据排查结果,本次问题并非由 Tailscale 设备名称变更直接导致。
更可能的情况是,在连接中断或重新建立过程中,远端 VS Code Server、Agent Host 或相关 IPC 状态未能正常清理,导致新的 Remote-SSH 会话无法正确完成远端服务初始化。
其典型表现为:
SSH 可正常登录
VS Code Server 可启动
Remote-SSH 持续停留在 Waiting for server log...终止当前用户的 VS Code Server 相关进程后,VS Code Remote-SSH 会重新建立远端运行环境,从而恢复正常。
结论
当 VS Code Remote-SSH 出现:
Waiting for server log...而普通 SSH 连接正常时,应优先检查远端 VS Code Server 进程及运行状态,而不是继续排查网络、SSH 密钥或防火墙。
可优先尝试:
pkill -u "$USER" -f 'vscode-server'
pkill -u "$USER" -f '\.vscode-server'本次故障的核心结论是:
Tailscale 与 SSH 链路均正常,故障由远端 VS Code Server 相关进程或会话状态异常引起。清理当前用户的 VS Code Server 进程后,Remote-SSH 连接恢复正常。