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

GCP虚拟机SSH密钥过期致HTTPS连接失败求助

GCP VM HTTPS连接失败+SSH密钥过期问题解决

问题根源

  1. SSH密钥过期残留:日志明确报Invalid ssh key entry - expired key,原密钥在2022-12-06就已过期。虽然你已生成新密钥并更新到元数据(新密钥过期时间2023-12-04),但要么是VM实例未同步最新元数据,要么是实例本地仍留存旧密钥,导致认证异常。
  2. HTTPS关联影响:SSH密钥异常可能打乱实例服务运行逻辑,或是你的HTTPS服务依赖SSH相关配置,导致443端口服务无法正常启动。同时也需排查HTTPS本身配置问题,但当前优先解决SSH密钥遗留问题。

分步解决

1. 彻底清除旧密钥,确保新密钥生效

  • 刷新元数据:从你提供的命令输出看,项目元数据已更新为新密钥,但需强制VM同步配置,执行:
    gcloud compute instances add-metadata [你的VM实例名] --metadata-from-file ssh-keys=[新密钥文件路径]
    
    或直接进入GCP控制台,找到实例的元数据标签,删除所有旧密钥条目,仅保留新生成的密钥。
  • 清理实例本地密钥:若能通过控制台浏览器终端登录实例,打开~/.ssh/authorized_keys文件,删除其中过期的密钥行,仅保留新密钥内容。

2. 排查HTTPS服务本身问题

  • 检查防火墙规则:确认GCP防火墙已开放443端口的入站流量,规则需包含tcp:443,目标覆盖你的VM实例。
  • 检查服务运行状态:登录实例后,查看HTTPS服务(如Nginx、Apache)是否正常运行:
    # 以Nginx为例
    sudo systemctl status nginx
    # 查看错误日志定位问题
    sudo tail -f /var/log/nginx/error.log
    
    重点排查是否存在证书配置错误(如证书过期、路径配置错误)。
  • 检查端口监听情况:确认443端口被HTTPS服务占用:
    sudo netstat -tulpn | grep 443
    

3. 重启实例使配置生效

完成上述操作后,重启VM实例,确保所有配置加载生效:

gcloud compute instances restart [你的VM实例名]

额外提示

从元数据输出可见,你的项目SSL证书配额使用量为0,说明你可能尚未配置HTTPS证书(无论是Let's Encrypt还是GCP管理证书),若无有效证书,HTTPS连接必然失败,需先完成证书配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:30:59