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

调整GCP VM磁盘容量后出现"Permission denied (publickey)"错误,求助恢复服务器访问与磁盘数据

调整GCP VM磁盘容量后出现"Permission denied (publickey)"错误,求助恢复服务器访问与磁盘数据

别着急,我来帮你一步步解决这个问题,先把数据保住是关键!下面分两种情况给你可行的方案:

一、先尝试通过串行控制台直接登录VM(绕开SSH密钥限制)

这是最直接的方式,能跳过SSH问题直接进入系统:

  • 打开GCP控制台,找到你的VM实例,点击顶部的「编辑」按钮
  • 下拉找到「启用串行控制台连接」选项,勾选后点击底部「保存」
  • 回到实例详情页,点击「连接」按钮的下拉菜单,选择「连接到串行端口」
  • 打开串行控制台窗口后按几次Enter键,输入你的VM用户名(比如默认的ubuntu、centos或者你自己设置的用户名)
  • 如果提示需要密码但你之前没设置过,可以尝试输入sudo su -(如果之前允许无密码sudo的话)切换到root,然后用passwd 你的用户名设置密码,之后就能用密码登录了

如果成功进入系统,接下来修复SSH问题:

  • 检查用户目录下的SSH密钥文件权限是否正确:
    ls -ld ~/.ssh
    ls -l ~/.ssh/authorized_keys
    
    确保.ssh目录权限是700,authorized_keys文件权限是600,不对的话就修改:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  • 打开SSH服务配置文件/etc/ssh/sshd_config,确认PubkeyAuthentication yes没有被注释;如果需要临时用密码登录,也可以把PasswordAuthentication no改成yes,保存后重启SSH服务:
    sudo systemctl restart sshd
    
    这样应该就能正常用SSH登录了

二、如果串行控制台也无法登录,直接挂载磁盘到临时VM恢复数据

如果第一种方法行不通,我们可以把故障磁盘挂载到新的临时VM上,直接访问数据:

  • 先停止你的故障VM实例(在GCP控制台实例页面点击「停止」)
  • 在实例的「磁盘」标签页,找到故障磁盘,点击「分离」注意不要删除磁盘!
  • 创建一个新的临时VM实例(选择和故障VM同区域、同操作系统的镜像,配置不用太高,能正常运行即可)
  • 临时VM创建好后进入「编辑」页面,下拉到「附加磁盘」,点击「添加磁盘」,选择刚才分离的故障磁盘,保存设置
  • 登录临时VM,先查看磁盘设备路径:
    lsblk
    
    你会看到一个新的磁盘(比如/dev/sdb,对应分区是/dev/sdb1)
  • 创建挂载点并挂载磁盘:
    sudo mkdir /mnt/recovery
    sudo mount /dev/sdb1 /mnt/recovery
    
    如果挂载失败,先尝试修复文件系统:sudo fsck /dev/sdb1
  • 现在你可以直接访问/mnt/recovery目录,里面就是故障磁盘的所有数据,先把重要的实验数据复制到安全位置(比如临时VM磁盘或GCP云存储桶)
  • 之后还可以检查故障磁盘里的SSH配置文件(/mnt/recovery/etc/ssh/sshd_config)或用户密钥文件(/mnt/recovery/home/你的用户名/.ssh/authorized_keys),找出问题后修复,再把磁盘挂载回原VM

最后提醒下,问题解决后一定要给VM磁盘创建快照备份,GCP的快照功能很方便,定期备份能避免这种紧急情况!

备注:内容来源于stack exchange,提问作者user1085844

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 10:54:31