VSCode 的 Remote-SSH 插件依赖系统 SSH 配置,仅读取格式正确的 ~/.ssh/config 中 Host 条目;常见问题包括 Host 行末尾空格、缺 HostName、私钥路径含空格未加引号、config 权限非 600;端口/用户须在 config 显式声明,IdentitiesOnly yes 可避免多密钥干扰;连接失败时需通过终端运行 ssh 命令验证,而非仅依赖 VSCode 日志。

VSCode 本身不管理 SSH 连接,它依赖系统已配置好的 ssh 命令和 ~/.ssh/config 文件——这意味着你不能在 VSCode 里“新建连接”或“保存密码”,所有连接逻辑都在终端 SSH 层。
为什么 Remote-SSH 插件找不到你的主机
Remote-SSH(官方插件)启动时会读取 ~/.ssh/config,但只识别符合格式的 Host 条目;常见失效原因:
-
Host行末尾有空格或 Tab,导致解析失败 - 用了别名但没配
HostName(例如只写Host myserver却没下一行HostName 192.168.1.100) - 私钥路径含空格或中文,且没用引号包裹(
IdentityFile ~/.ssh/id_rsa_prod✅,IdentityFile ~/Dropbox/keys/id_rsa❌) - 文件权限太宽松:
~/.ssh/config必须是600,否则 OpenSSH 拒绝读取
如何让 VSCode 正确加载带端口/用户的 SSH 配置
Remote-SSH 不支持在连接字符串里直接写端口或用户(比如 user@host:2222),必须靠 ~/.ssh/config 显式声明:
Host prod-server
HostName 203.0.113.5
User deploy
Port 2222
IdentityFile ~/.ssh/id_ed25519_prod
IdentitiesOnly yes
之后在 VSCode 命令面板(Ctrl+Shift+P)运行 Remote-SSH: Connect to Host...,就能看到 prod-server 可选;IdentitiesOnly yes 很关键——它防止 SSH 尝试默认密钥导致连接卡住。
1.) 将所有文件解压到php环境中,本程序才用smarty+php+mysql设计。如果运行不了,请修改hhy文件夹下的smarty.php文件改法请看说明2.) 修改configs下的config.inc.php下的连接数据库的密码和用户名3.) 本程序没有做安全页面,人工导入sql.inc到mysql数据库。管理员初始化帐号为admin,密码为hhy。后台地址:http://你的网站地址/h
连接失败时该看哪几行日志
点击 VSCode 左下角 “Remote” 状态栏 → “Open SSH Configuration File”,再执行连接,然后打开命令面板运行 Remote-SSH: Show Log。重点关注:
-
Running ssh -F /dev/null -o ConnectTimeout=15 ...—— 它实际调用的命令,可复制到终端手动跑一遍验证 -
Received disconnect from ...: 2: Too many authentication failures—— 通常是本地有多个密钥,服务端拒绝继续尝试,加IdentitiesOnly yes解决 -
Permission denied (publickey)—— 不是密码错,而是密钥未被接受,检查ssh -T -v prod-server输出中是否成功用了目标私钥
真正麻烦的不是配置步骤,而是 SSH 层的静默失败:VSCode 不报错,只停在“正在建立连接…”;这时候必须切到终端,用原生命令验证 ssh 是否真能连,否则所有 VSCode 操作都是在猜。









