GCP Linux实例磁盘扩容后仍无法SSH连接,临时目录不可用导致认证失败
GCP Linux实例磁盘扩容后仍无法SSH连接,临时目录不可用导致认证失败
看起来你遇到的问题核心是磁盘扩容后文件系统没有自动扩展,根目录依旧处于满容量状态,导致临时目录(/tmp、/var/tmp等)无法正常写入,进而干扰了GCP的google-accounts认证服务,最终引发SSH连接失败。咱们一步步来解决这个问题:
第一步:通过启动脚本扩容文件系统
你已经完成了磁盘硬件的扩容,但操作系统的文件系统还没适配新的磁盘大小,所以实际可用空间还是原来的50GB。因为现在没法SSH连接,咱们用GCP控制台的启动脚本功能来自动扩容:
- 登录GCP控制台,找到你的
tomcat-server-1实例,先停止实例 - 点击「编辑」按钮,在「自定义元数据」区域,添加一条新的元数据:
- 键:
startup-script - 值:根据你的文件系统类型选择对应命令:
- 如果是ext4(GCP Debian/Ubuntu默认):
resize2fs /dev/sda1 - 如果是XFS(CentOS/RHEL常见):
xfs_growfs /
- 如果是ext4(GCP Debian/Ubuntu默认):
- 键:
- 保存修改后,重新启动实例
第二步:验证扩容结果
实例启动后,尝试重新SSH连接。如果成功连接,执行以下命令确认磁盘空间:
df -h
你应该能看到根目录(/)的可用空间变成80GB左右。
第三步:修复临时目录权限(若需要)
如果扩容后还是遇到临时目录相关的错误,可能是磁盘满的时候导致了目录权限异常。执行以下命令恢复临时目录的正确权限:
chmod 1777 /tmp /var/tmp
这个权限设置允许所有用户读写临时文件,同时防止用户删除他人的临时文件,是Linux临时目录的标准配置。
第四步:重启认证服务
最后,重启GCP的账号认证服务,确保SSH认证流程正常:
systemctl restart google-accounts-daemon
后续预防建议
以后生成SQL dump时,建议直接导出到GCP云存储(GCS),避免占用本地磁盘空间:
mysqldump -u [用户名] -p[密码] [数据库名] | gsutil cp - gs://你的存储桶名称/dump.sql
这样既不会占满本地磁盘,还能直接完成备份的云存储。
备注:内容来源于stack exchange,提问作者Kumaran Shankar
相关产品推荐
相关产品推荐

