remote-ssh卡在“resolving host…”是dns解析或ssh配置路径问题,需检查~/.ssh/config、remote.ssh.configfile设置、hosts文件或杀毒软件拦截。

Remote-SSH连接卡在“Resolving host…”不动
这是最典型的阻塞点,VSCode根本没发起到 SSH 连接,问题出在本地 DNS 解析或配置路径上。
-
~/.ssh/config里 Host 别名对应的HostName填了域名但本地无法解析(比如公司内网域名、未配 hosts);改用 IP 直连测试,或在/etc/hosts补全解析 - VSCode 启动时没读到你预期的
~/.ssh/config—— 检查remote.SSH.configFile设置是否被手动改成了其他路径,或者用了非默认 shell(如 zsh 下启动 VSCode 但 SSH 配置依赖 bash 的环境变量) - Windows 上用 OpenSSH for Windows 时,
ssh.exe可能被杀毒软件拦截,任务管理器里看有没有ssh.exe进程卡住;临时关掉 Defender 实时防护再试
报错“Failed to fetch remote environment”或“Permission denied (publickey)”
说明已连上服务器,但认证失败或用户环境初始化出问题,和密钥本身有效性无关,更多是权限和路径陷阱。
-
~/.ssh/authorized_keys文件权限必须是600,其父目录~/.ssh必须是700,否则 OpenSSH 服务端直接拒收公钥(Linux/macOS 严格校验) - 服务器上用户 shell 不是
/bin/bash或/bin/zsh(比如设成了/bin/false或/usr/sbin/nologin),Remote-SSH 会因无法加载 profile 而失败;检查getent passwd $USER输出的第七列 - 如果用了
ProxyCommand跳转,确保中间跳板机上的nc或ssh命令可执行且在$PATH中;部分 Alpine 镜像缺nc,得换用ncat或补装
连接成功但文件浏览器空白、终端打不开,或提示“Failed to start language server”
远程环境没准备好 VSCode Remote 所需的基础能力,不是网络或认证问题,而是服务端缺失依赖。
- 远程服务器必须有
tar命令(VSCode 用它打包传输插件),某些最小化系统(如 CentOS Stream minimal、Docker 容器)默认不装;运行which tar确认,没有就yum install -y tar或apt install -y tar - 远程用户主目录磁盘满(
df -h ~),或~/.vscode-server权限异常(比如被 root 创建过),会导致服务端安装失败;删掉~/.vscode-server后重连,让 VSCode 自动重装 - 某些国产 Linux 发行版(如统信 UOS、麒麟)自带的 SSH 服务禁用了
AllowTcpForwarding,Remote-SSH 依赖该功能通信;需改/etc/ssh/sshd_config开启并sudo systemctl restart sshd
Windows 本地连 Linux 服务器时中文乱码、终端显示异常
本质是 VSCode 终端和远程 shell 的编码不一致,尤其在非 UTF-8 locale 下更明显。
- 远程服务器运行
locale,确认LANG和LC_ALL是en_US.UTF-8或zh_CN.UTF-8;若为空或C,在~/.bashrc加export LANG=en_US.UTF-8并source ~/.bashrc - VSCode 设置里搜
terminal.integrated.env.linux,加一条:"LANG": "en_US.UTF-8"(注意是 JSON 格式,别漏逗号) - 不用 Windows 自带的 OpenSSH 客户端(容易丢字符),改用 Git for Windows 自带的
git-bash里的ssh.exe:在设置里把remote.SSH.path改成"C:\Program Files\Git\usr\bin\ssh.exe"
tar,都可能让整个流程静默失败。多看一眼 VSCode 窗口右下角的状态栏文字,比反复重装插件有用得多。











