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

GCP Debian10实例执行apt update后启动脚本失效、Web SSH无法连接问题问询

根因分析
  1. 核心触发点为git-all安装包的依赖冲突:git-all是git的全量依赖元包,会安装所有git相关的推荐依赖、工具和文档。在Debian 10 buster的GCP官方镜像中,预装的google-compute-engine-guest-agent、google-compute-engine-oslogin等GCP Guest Environment核心包,和git-all的部分依赖存在版本冲突,apt执行git-all安装时会自动卸载这些GCP必备组件。
    • 首次启动时Guest Agent尚未被卸载,因此可以正常读取元数据服务中的启动脚本配置完成执行,安装git-all过程中Guest Environment组件被卸载,因此重启后相关功能全部失效
    • Guest Agent被卸载后,实例无法访问元数据服务读取startup-script-url配置,不会执行启动脚本,也无法上报日志到Cloud Logging
    • OSLogin组件被卸载后,GCP Web SSH无法临时注入登录密钥,导致Web控制台SSH连接失败
  2. 日志异常的说明:
    • 你执行的/var/log/dmesg是日志文件路径,不是可执行命令,正确的内核日志查询命令为dmesg
    • Debian 10默认journald为临时存储模式,重启后日志会自动清空,加上Guest Agent被卸载后日志上报链路被破坏,因此无法查到启动相关日志

修复方案

现有异常实例恢复

如果仍可通过本地存储的密钥对SSH登录实例,执行以下操作恢复GCP核心组件:

# 更新包索引
sudo apt update
# 重新安装GCP Guest Environment全量组件
sudo apt install -y google-compute-engine google-compute-engine-guest-agent google-compute-engine-oslogin
# 启用并启动Guest Agent服务
sudo systemctl enable --now google-guest-agent.service
# 验证服务运行状态
sudo systemctl status google-guest-agent.service

操作完成后重启实例,即可恢复启动脚本执行、Web SSH连接、日志上报功能。

永久规避方案

方案1(推荐):替换安装包

不要使用git-all元包,改为安装标准git包,可满足绝大多数使用场景且不会触发依赖冲突,修改启动脚本如下:

#!/bin/bash
if ! command -v git &> /dev/null
then
    echo "============================================"
    echo "GIT WAS NOT FOUND. INSTALLING NOW"
    sudo apt -y update 
    # 替换git-all为标准git包
    sudo apt install -y git
    echo "============================================"
fi

echo "CONTINUE TO DO MORE HERE"

方案2:保留全量git功能

如果确实需要git-all的全量功能,安装时显式指定保留GCP核心组件即可:

sudo apt install -y git-all google-compute-engine google-compute-engine-guest-agent google-compute-engine-oslogin

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:36:01