当前位置: 首页 > news >正文

VS Code/Antigravity Remote SSH 连接要求输入密码?明明已经配了 SSH 密钥

问题描述

SSH config 已经配置好了密钥登录:

Host MyServerHostName xx.xx.xx.xxUser rootPort 22IdentityFile "C:\Users\onefly\.ssh\id_rsa"ForwardAgent yes

在 Git Bash 中 ssh MyServer 可以正常免密登录,但通过 VS Code Remote SSH 连接时却弹出密码输入框。

排查过程

1. 检查服务器端

  • ~/.ssh/authorized_keys 中已有对应公钥
  • ~/.ssh 权限 700,authorized_keys 权限 600
  • sshd_configPermitRootLogin yesPubkeyAuthentication 默认启用

服务器端一切正常。

2. 发现关键线索

查看 VS Code 的 Remote SSH 日志(输出面板 → Remote - SSH),发现关键错误:

debug1: Offering public key: C:\\Users\\ranxi\\.ssh\\id_rsa RSA SHA256:xxxxx explicit
debug1: Server accepts key: C:\\Users\\ranxi\\.ssh\\id_rsa RSA SHA256:xxxxx explicitBad permissions. Try removing permissions for user: MSI\CodexSandboxUsers (S-1-5-21-xxxx) on file C:/Users/ranxi/.ssh/id_rsa.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\ranxi\\.ssh\\id_rsa' are too open.
This private key will be ignored.
Load key "C:\\Users\\ranxi\\.ssh\\id_rsa": bad permissions
debug1: Next authentication method: password

服务器已经接受了密钥,但客户端在签名阶段拒绝使用它,因为私钥文件权限"太开放"。

3. 根本原因

VS Code Remote SSH 使用的是 Windows 自带的 OpenSSHC:\Windows\System32\OpenSSH\ssh.exe),而不是 Git Bash 自带的 OpenSSH。

两者的区别:

Git Bash OpenSSH Windows OpenSSH
路径 C:\Program Files\Git\usr\bin\ssh.exe C:\Windows\System32\OpenSSH\ssh.exe
权限检查 使用 POSIX 模拟,较宽松 使用 Windows ACL,严格检查

Windows OpenSSH 发现私钥文件被 CodexSandboxUsers 用户组拥有继承的读取权限((I)(RX)),认为不安全,直接拒绝使用密钥,fallback 到密码认证。

解决方案

PowerShell(管理员)CMD 中执行:

icacls C:\Users\ranxi\.ssh\id_rsa /inheritance:r /grant ranxi:F /grant SYSTEM:F /grant Administrators:F

这条命令做了三件事:

  1. /inheritance:r — 移除继承的权限(去掉 CodexSandboxUsers 等继承来的 ACL)
  2. /grant onefly:F — 给当前用户完全控制权
  3. /grant SYSTEM:F /grant Administrators:F — 保留系统和管理员权限

执行后验证:

icacls C:\Users\ranxi\.ssh\id_rsa

输出应该只有:

C:\Users\ranxi\.ssh\id_rsa BUILTIN\Administrators:(F)NT AUTHORITY\SYSTEM:(F)MSI\ranxi:(F)

没有 CodexSandboxUsers 了,重新连接 VS Code Remote SSH 即可免密登录。

总结

  • 现象:Git Bash SSH 正常,VS Code Remote SSH 要密码
  • 原因:两者用的是不同的 SSH 客户端,Windows OpenSSH 对私钥文件权限检查更严格
  • 修复:移除私钥文件上多余用户组的继承权限
http://www.jsqmd.com/news/405783/

相关文章:

  • 2026年上海别墅防水公司推荐榜:三大知名品牌公司实力解析与选择指南 - shruisheng
  • 上海别墅防水哪家好?2026企业推荐及选择指南,口碑实力 + 案例分享 + 避坑推荐 - shruisheng
  • 2月23日鲜花
  • Java面试实战:从Spring Boot入门到微服务架构
  • 2026 AI 论文生成软件封神合集(省时 80%+,查重稳过)
  • 零基础自学网安必藏!6个干货网站,从入门到精通全搞定
  • 谁说网安只是修防火墙?他们才是数字世界的守护者
  • 基于安卓的智能垃圾分类助手系统
  • 2026计算机卷到窒息,普通毕业生别硬刚!这个缺口炸了的行业,现在上车刚刚好
  • 2026 最新|计算机大学生 CTF 参赛实战指南:入门路径 + 冲奖策略 + 分阶段时间规划_
  • GEO兴起:AI时代品牌必争的营销新阵地
  • GPU算力出租兴起,低成本破解AI算力困局
  • 门店系统怎么选?多维度测评帮你找对数字管家
  • Interface Segregation Princeple(ISP 接口隔离原则)
  • Liskov Substitution Principle(LSP 里氏替换原则)
  • python: Visitor Pattern
  • python+uniapp微信小程序的毕业论文选题系统设计与实现
  • python+uniapp微信小程序的校园外卖点餐点单系统 商家协同过滤
  • 闲置不用的沃尔玛购物卡可以回收变现吗 - 抖抖收
  • 你说 还未解锁,那么“/data/log/“; 为什么这个路径可以?不是还未解锁吗?
  • 白嫖永久免费域名,托管到 CloudFlare
  • 2026年目前比较好的金属探测门品牌找哪家,金属探测门/安检仪/安检设备/智能安检/安检机,金属探测门源头厂家排行榜单 - 品牌推荐师
  • 兑换的京东e卡套装在哪里回收划算? - 抖抖收
  • 超级人工智能(AGI)是否是大模型的必然发展方向?
  • 破解合规与迭代双重难题:研发项目管理系统的全行业适配方案——全星研发管理APQP软件系统
  • 高端制造企业QMS选型指南:QMS系统全方位解读——全星质量管理QMS软件系统推荐
  • 基于单片机的防火防盗报警系统设计方案
  • 用SHAP进行多模型解释性分析:类别与数值预测案例
  • CT断层成像系列09——三维锥束Shepp-Logan头模型设计实现与正向投影实现(附Matlab代码)
  • 2026曝气池清理厂家推荐,专业实力看得见,专业的曝气池清理公司推荐榜深度剖析助力明智之选 - 品牌推荐师