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

VS Code Remote SSH连接远程主机报错:无法找到公钥权限被拒绝

VS Code Remote SSH 公钥连接报错修复方案

连接时返回的核心报错如下:

no such identity: publickey.pem: No such file or directory
Permission denied (publickey).

报错核心触发逻辑:SSH客户端读取配置中指定的身份私钥publickey.pem时找不到对应文件,导致公钥认证流程直接失败,返回权限拒绝提示,无法建立连接。

分步排查修复

  • 先定位本地私钥的实际存储路径
    绝大多数找不到密钥的问题都是配置里写了相对路径导致的——SSH默认只会从当前用户的.ssh目录(Windows是C:\Users\你的用户名\.ssh\,Mac/Linux是~/.ssh/)下读取相对路径指定的密钥,只要密钥放在其他目录就会触发文件不存在报错。
    本地终端执行命令全局查找密钥位置:
    Windows环境执行:dir /s /b C:\publickey.pem(可替换盘符为你存放密钥的分区)
    Mac/Linux环境执行:find / -name "publickey.pem" 2>/dev/null
    找到文件后先修复私钥权限:SSH会强制要求私钥不能被其他用户访问,否则直接拒绝加载。Mac/Linux下执行chmod 600 你查到的私钥绝对路径即可;Windows下右键私钥文件-属性-安全,删除除当前登录用户外的所有权限条目,仅保留当前用户的完全控制权限。
  • 修正SSH配置文件里的密钥路径
    在VS Code中按F1调出命令面板,搜索执行Remote-SSH: Open SSH Configuration File,选择你当前连接使用的config文件,找到对应远程主机的配置段,把IdentityFile字段的值从原来的相对路径publickey.pem替换为刚才查到的私钥绝对路径,示例配置如下:
    Host 你的远程主机别名
      HostName 远程主机IP
      User 登录用户名
      IdentityFile C:\Users\张三\ssh_keys\publickey.pem  # Windows示例
      # IdentityFile /home/zhangsan/ssh_keys/publickey.pem  # Mac/Linux示例
    
    注意路径不要包含中文、全角空格,避免路径解析失败。
  • 校验远程主机的公钥部署
    路径修正后如果仍然报公钥权限错误,先在本地终端直接执行SSH命令测试直连:ssh 远程用户名@远程主机IP -i 你的私钥绝对路径。如果直连失败,说明远程主机上没有正确配置对应公钥:需要把本地和publickey.pem同目录下的publickey.pem.pub文件内容,追加到远程主机对应用户家目录下的.ssh/authorized_keys文件末尾,同时给远程主机上的目录和文件修正权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  • 清理异常缓存重试
    回到VS Code命令面板,执行Remote-SSH: Kill VS Code Server on Host清理远程主机上残留的异常服务进程,同时打开本地~/.ssh/known_hosts文件,删除对应远程主机IP的旧密钥记录,重新发起连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:24:20