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

GCP日志出现SSH密钥错误,non_windows_accounts.go是否存在Bug?

GCE SSH密钥错误排查与解决

错误详情

1. 过期SSH密钥错误

日志内容:

{ 
  insertId: "1uvaqlxfcfvjgw",
  jsonPayload: { 
    localTimestamp: "2023-01-30T11:32:57.2877Z",
    message: "Invalid ssh key entry - expired key: selman_keskin:ecdsa-sha2-nistp256 AAAA...= google-ssh {\"userName\":\"selman.keskin@company.com\",\"expireOn\":\"2023-01-30T11:32:49+0000\"}",
    omitempty: null 
  },
  labels: {1},
  logName: "projects/xxx-testproject/logs/GCEGuestAgent",
  receiveTimestamp: "2023-01-30T11:32:57.610158055Z",
  resource: {2},
  severity: "ERROR",
  sourceLocation: {3},
  timestamp: "2023-01-30T11:32:57.287845863Z" 
}

2. SSH密钥格式不识别错误

Invalid ssh key entry - unrecognized format: ssh-rsa AAAA...

关于non_windows_accounts.go是否存在Bug

这类错误基本不是non_windows_accounts.go的代码Bug,问题出在密钥配置本身:

  • 过期密钥错误是因为密钥明确设置了过期时间且已失效;
  • 格式不识别错误通常是密钥不符合GCE要求的格式规范,比如缺少google-ssh扩展字段、密钥格式错误或字段缺失。

解决步骤

针对过期密钥错误

  • 登录GCP控制台,进入对应虚拟机实例的元数据页面;
  • 在ssh-keys字段中找到匹配selman.keskin@company.com的过期密钥条目;
  • 删除过期密钥,或生成新的带有效过期时间的密钥替换,新密钥格式示例:
    用户名:ecdsa-sha2-nistp256 公钥内容 google-ssh {"userName":"selman.keskin@company.com","expireOn":"2024-12-31T23:59:59+0000"}
    
    注意expireOn需设置为未来的时间戳。

针对格式不识别错误

  • 检查密钥是否符合GCE标准格式:必须包含google-ssh扩展字段,完整格式为[用户名]:[密钥类型] [公钥内容] google-ssh {"userName":"[邮箱/用户名]","expireOn":"[可选过期时间]"};
  • 确认密钥类型为GCE支持的类型:ssh-rsa、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、ecdsa-sha2-nistp521、ssh-ed25519;
  • 检查公钥内容是否完整,无截断或额外字符;
  • 将不符合规范的密钥替换为正确格式的版本,更新到实例元数据中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:45:46