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

无法通过SSH连接Gcloud实例,重置密钥后问题依旧求建议

解决GCP实例SSH连接失败的排查与修复步骤

我之前也碰到过和你一模一样的问题——删了旧SSH密钥重新生成后,还是连不上GCP实例,折腾了好几个小时才搞定。给你整理几个亲测有效的排查和解决步骤:

1. 先确认新密钥已正确同步到实例元数据

  • 登录GCP控制台,找到目标实例,点击「编辑」按钮,拉到页面底部的「SSH密钥」区域,检查你新生成的公钥是否完整存在。注意公钥格式必须是ssh-rsa AAAAB3NzaC1yc2E... 你的用户名@本地主机名这种完整格式,末尾的注释部分不能省略,否则GCP不会识别。
  • 也可以用gcloud命令行快速验证:
    gcloud compute instances describe [你的实例名称] --zone [实例所在区域]
    
    在输出结果里搜索sshKeys字段,确认你的新公钥已经被正确添加。

2. 检查本地SSH客户端的配置与权限

  • 连接时务必指定新密钥文件,别依赖系统默认的密钥(比如id_rsa):
    ssh -i ~/.ssh/你的新密钥文件名 你的用户名@实例外部IP
    
  • 确保密钥文件的权限符合要求(Linux/macOS下必须是600,Windows下也要确保只有当前用户能访问):
    chmod 600 ~/.ssh/你的新密钥文件名
    
    权限不对的话,SSH客户端会直接拒绝使用该密钥。

3. 排查实例端的SSH服务与配置

如果能通过GCP控制台的「浏览器SSH」(这个不依赖本地密钥,走GCP代理)连接进实例,优先做以下检查:

  • 确认sshd服务正在运行:
    sudo systemctl status sshd
    
    如果未启动,执行sudo systemctl start sshd,并设置开机自启sudo systemctl enable sshd。
  • 检查sshd配置文件/etc/ssh/sshd_config,确保以下关键配置项正确:
    • PubkeyAuthentication yes(开启公钥认证)
    • AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2(指定公钥存储路径)
    • 没有DenyUsers或DenyGroups规则限制你的登录用户。
  • 检查实例上的~/.ssh/authorized_keys文件:确保里面只有你新添加的有效公钥,没有旧的无效密钥,同时设置正确的权限:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

4. 验证网络与防火墙规则

  • 检查GCP防火墙规则:进入VPC网络的「防火墙规则」页面,确认default-allow-ssh规则存在,并且允许从你的本地IP(或必要时允许0.0.0.0/0,不推荐长期使用)访问22端口。
  • 排除本地网络问题:切换到手机热点连接网络,尝试重新SSH,确认不是本地防火墙或代理阻止了22端口的流量。

5. 极端情况的修复方案

如果以上步骤都无效,可以试试:

  • 在GCP控制台实例页面,点击「更多操作」→「重置SSH」,这个功能会自动重新配置sshd服务和authorized_keys文件,修复常见的配置错误。
  • 创建一个新的临时用户,添加新密钥后用该用户连接,排除原用户的权限或配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:28:06