<p>Remote-SSH插件未安装或未启用会导致“Remote-SSH: Connect to Host”命令不可见;需在扩展面板中搜索“Remote - SSH”(含空格和短横线)并确认已启用,安装后左下角会出现蓝绿色>标识。</p>

Remote-SSH 插件没装或没启用,Remote-SSH: Connect to Host 命令根本不会出现
很多人点开命令面板(Ctrl + Shift + P)搜不到连接命令,第一反应是“插件坏了”,其实只是没装或禁用了。确认方法很简单:打开扩展面板,搜 Remote - SSH,看状态是不是“已启用”。注意名字必须带空格和短横线,别装成 Remote SSH 或 SSH Remote 这类非官方包。
装完插件后,VS Code 左下角会出现一个蓝绿色的 >Remote-SSH: Open SSH Configuration File,哪怕配置文件为空,也能强制激活插件上下文。
~/.ssh/config 里 Host 配置写错,连都连不上,更别说调试
VS Code 的 Remote-SSH 不读密码框输入的内容,它只认 ~/.ssh/config 文件里的 Host 定义。如果你直接在连接弹窗里输 user@ip:port,它会尝试走默认 SSH 行为,但大概率失败,因为没指定密钥路径、没关 StrictHostKeyChecking、也没设 ForwardAgent。
正确做法是手动编辑配置文件,例如:
Host my-server
HostName 192.168.1.100
User lbs
Port 22
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
ForwardAgent yes关键点:
-
HostName必须是 IP 或可解析域名,不能带端口(端口单独用Port字段) -
IdentityFile路径要绝对,Windows 用户注意用正斜杠或双反斜杠,比如C:/Users/xxx/.ssh/id_rsa - 加
StrictHostKeyChecking no可避免首次连接卡在 yes/no 提示;但生产环境建议删掉这行,改用ssh-keyscan预置指纹 -
ForwardAgent yes是后续调试 Python 或 Git 操作能访问本地密钥的前提,漏了会导致git push报 Permission denied
远程服务器上没装 curl 或 wget,vscode-server 下载失败,终端里全是 Failed to fetch
VS Code 连接时会在远程自动生成并运行 vscode-server,这个过程依赖服务器能联网且有基础工具。CentOS 7 默认没装 curl,Ubuntu 最小安装版可能没 wget,结果就是连接卡在 “Installing VS Code Server” 步骤,日志里反复报 Failed to fetch https://update.code.visualstudio.com/...。
解决办法只有两个:
- 登录服务器终端,手动装工具:
sudo apt install wget curl(Debian/Ubuntu)或sudo yum install curl(CentOS/RHEL) - 如果服务器完全不能联网,得提前下载好
vscode-servertar 包,传到服务器~/.vscode-server/bin/对应 commit ID 目录下,再重连
注意:vscode-server 版本必须和本地 VS Code 主版本严格匹配(如本地是 1.93.x,远程就不能用 1.92.x 的 server),否则插件加载失败、调试器无法启动。
调试时断点不命中,launch.json 里 justMyCode 和 pythonPath 设错是主因
Remote-SSH 连上后,调试不是自动就好的。Python 调试尤其容易翻车:断点灰掉、变量窗口空白、控制台输出乱码——这些问题 80% 出在 launch.json 配置没对齐远程环境。
典型错误配置:
- 写
"pythonPath": "/usr/bin/python3",但远程实际用的是/opt/conda/bin/python,结果调试器找不到解释器 - 没关
"justMyCode": true,而你调试的是自己写的模块,但模块路径没被识别为“我的代码”,断点直接跳过 -
"cwd"设成本地路径(如"${workspaceFolder}"),但远程工作区路径其实是/home/lbs/project,导致调试时找不到源文件
安全写法是:先在远程终端里跑 which python 和 pwd,把结果硬编码进 launch.json,例如:
{
"version": "0.2.0",
"configurations": [{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"module": "pytest",
"python": "/opt/conda/bin/python",
"cwd": "/home/lbs/myproject",
"justMyCode": false,
"console": "integratedTerminal"
}]
}最后提醒一句:所有路径、解释器、环境变量,必须以远程服务器上的真实状态为准,本地 VS Code 里看到的路径提示全是假的,别信。


















