You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Visual Studio Code Remote SSH连接Entware系统设备

无法通过VS Code Remote SSH连接Entware系统华硕路由器的原因分析

问题概述

VS Code Remote Explorer扩展可正常连接其他SSH服务器,但无法连接运行Entware Linux的华硕路由器(router.asus.com)。直接通过终端执行ssh admin@router.asus.com可正常登录并执行命令,但Remote Explorer连接失败,核心报错为bash: syntax error: unexpected "(" (expecting "then"),完整日志如下:

[09:44:34.076] Log Level: 2
[09:44:34.088] remote-ssh@0.92.0
[09:44:34.088] win32 x64
[09:44:34.103] SSH Resolver called for "ssh-remote+router.asus.com", attempt 1
[09:44:34.104] "remote.SSH.useLocalServer": false
[09:44:34.104] "remote.SSH.showLoginTerminal": false
[09:44:34.105] "remote.SSH.path": undefined
[09:44:34.105] "remote.SSH.configFile": undefined
[09:44:34.105] "remote.SSH.useFlock": true
[09:44:34.105] "remote.SSH.lockfilesInTmp": false
[09:44:34.105] "remote.SSH.localServerDownload": auto
[09:44:34.105] "remote.SSH.remoteServerListenOnSocket": false
[09:44:34.106] "remote.SSH.showLoginTerminal": false
[09:44:34.106] "remote.SSH.defaultExtensions": []
[09:44:34.106] "remote.SSH.loglevel": 2
[09:44:34.106] "remote.SSH.enableDynamicForwarding": true
[09:44:34.106] "remote.SSH.enableRemoteCommand": false
[09:44:34.106] "remote.SSH.serverPickPortsFromRange": {}
[09:44:34.107] "remote.SSH.serverInstallPath": {}
[09:44:34.111] SSH Resolver called for host: router.asus.com
[09:44:34.111] Setting up SSH remote "router.asus.com"
[09:44:34.123] Using commit id "6261075646f055b99068d3688932416f2346dd3b" and quality "stable" for server
[09:44:34.131] Install and start server if needed
[09:44:35.753] Checking ssh with "ssh -V"
[09:44:35.855] > O
[09:44:35.856] > penSSH_for_Windows_8.6p1, LibreSSL 3.4.3

[09:44:35.870] Running script with connection command: ssh -T -D 56215 "router.asus.com" bash
[09:44:35.874] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[09:44:36.933] > admin@router.asus.com's password:�]0;C:\WINDOWS\System32\cmd.exe�
[09:44:36.933] Got some output, clearing connection timeout
[09:44:36.933] Showing password prompt
[09:44:41.224] Got password response
[09:44:41.224] "install" wrote data to terminal: "************"
[09:44:41.272] >
[09:44:41.568] > Permission denied, please try again.

admin@router.asus.com's password:
[09:44:41.568] Showing password prompt
[09:44:47.877] Got password response
[09:44:47.877] "install" wrote data to terminal: "***********"
[09:44:47.917] >
[09:44:47.947] > 685b207502bc: running
[09:44:47.961] > bash: syntax error: unexpected "(" (expecting "then")
[09:44:49.237] "install" terminal command done
[09:44:49.238] Install terminal quit with output: bash: syntax error: unexpected "(" (expecting "then")
[09:44:49.238] Received install output: bash: syntax error: unexpected "(" (expecting "then")
[09:44:49.239] Failed to parse remote port from server output
[09:44:49.241] Resolver error: Error:
at g.Create (c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:583821)
at t.handleInstallOutput (c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:582473)
at t.tryInstall (c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:679811)
at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
at async c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:642614
at async t.withShowDetailsEvent (c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:645932)
at async t.resolve (c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:643664)
at async c:\Users\rorogelj.vscode\extensions\ms-vscode-remote.remote-ssh-0.92.0\out\extension.js:1:722342
[09:44:49.251] ------

核心原因及修复方案

1. 旧版bash不兼容安装脚本语法

日志中的语法错误表明,VS Code Remote SSH推送的安装脚本使用了bash高级语法(如数组、扩展条件表达式),但Entware默认的bash版本过旧,无法解析这些语法。

  • 修复步骤:
    • 登录路由器,执行opkg update && opkg upgrade bash更新bash到最新版本
    • 若更新后仍报错,在本地~/.ssh/config中添加配置,强制使用兼容模式执行命令:
      Host router.asus.com
          RemoteCommand sh -c "bash --posix -l"
          RequestTTY yes
      

2. 轻量系统缺失依赖组件

Entware是精简版Linux,缺少VS Code Remote Server运行所需的基础依赖(如Python3、核心工具集),导致安装脚本执行中断。

  • 修复步骤:
    • 安装必要依赖:opkg install python3 coreutils procps-ng
    • 若自动安装失败,可手动下载对应架构的VS Code Remote Server包,上传到路由器并解压至~/.vscode-server目录,再通过SSH连接。

3. SSH环境变量配置不一致

直接终端SSH的环境变量与VS Code Remote使用的环境变量存在差异,导致脚本无法找到正确的命令路径。

  • 修复步骤:
    • 在路由器的~/.bashrc中确保PATH包含Entware的bin目录:export PATH=/opt/bin:/opt/sbin:$PATH
    • 在本地~/.ssh/config中添加环境变量传递配置:
      Host router.asus.com
          SendEnv PATH
      

4. Remote SSH扩展版本兼容性问题

当前使用的remote-ssh@0.92.0版本对轻量Linux发行版支持不足,尝试升级或降级版本。

  • 修复步骤:
    • 在VS Code扩展商店更新Remote - SSH到最新版本
    • 若最新版本仍有问题,降级至v0.80.x等稳定旧版本测试

内容的提问来源于stack exchange,提问作者Rok Rogelj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:30:53