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

HashiCorp Packer构建GCP Ubuntu镜像后如何获取SSH密码创建sudo用户

HashiCorp Packer GCE 构建相关问题解答

Packer 构建阶段的 SSH 密码是什么?

你当前使用的googlecompute构建器默认没有设置任何静态SSH密码。构建过程中Packer会自动生成临时SSH密钥对,注入到临时构建实例里完成连接认证,构建结束后临时实例会被销毁,临时密钥也直接作废,不存在通用的预设SSH密码。
Ubuntu 20.04的官方GCE镜像默认就禁用了密码方式的SSH登录,只允许密钥认证。

构建后如何获取root、packer等sudo权限用户的密码?

默认配置下构建出的镜像里,root、packer用户都没有设置可用密码,你找不到所谓的"默认密码"——因为根本就没配置。
如果你需要用密码登录相关账号,必须在Packer构建阶段通过provisioner主动给对应用户设置密码;如果已经构建完镜像没做这个配置,只能在使用该镜像创建实例后,通过GCE平台注入的SSH密钥登录实例,再手动给用户设置密码,没有其他捷径。

如何创建拥有sudo权限的用户账户

有两种实现方式,推荐第一种直接把配置固化到镜像里,后续用该镜像创建的所有实例都自带配置好的sudo用户,不用重复操作。

方式一:在Packer构建流程中直接配置(推荐)

你原来的packer.json有个小语法问题:builders数组最后一项多了多余的尾逗号,直接运行会报JSON解析错误,补上provisioners段做用户配置即可,参考配置如下:

{
  "builders": [
    {
      "type": "googlecompute",
      "project_id": "project-id",
      "source_image": "ubuntu-2004-focal-v20220615",
      "ssh_username": "packer",
      "zone": "us-west1-a"
    }
  ],
  "provisioners": [
    {
      "type": "shell",
      "inline": [
        "apt-get update -y",
        "useradd -m -s /bin/bash devuser",
        "echo 'devuser:YourCustomPassword' | chpasswd",
        "usermod -aG sudo devuser",
        "echo 'devuser ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/devuser",
        "chmod 0440 /etc/sudoers.d/devuser"
      ]
    }
  ]
}

配置说明:

  • 把devuser替换为你想要的自定义用户名,YourCustomPassword替换为实际要设置的密码
  • 不需要sudo免密的话,删除写入sudoers配置和修改权限的两行即可
  • 生产环境不要硬编码明文密码,建议用Packer变量从环境变量读取密码,避免凭证泄露
  • 如果需要给packer、root用户设置密码,或者开启SSH密码登录,在inline数组里追加对应命令即可
    改完配置重新执行packer build packer.json,生成的新镜像里就自带配置好的sudo用户了。

方式二:镜像构建完成后手动创建

如果你不想重新构建镜像,可以先用生成的镜像创建GCE实例,在实例启动配置里添加你本地的SSH公钥,启动后用密钥登录实例,依次执行以下命令创建sudo用户即可:

# 替换devuser为目标用户名
sudo useradd -m -s /bin/bash devuser
# 替换后面的密码为自定义密码
sudo echo 'devuser:YourCustomPassword' | chpasswd
sudo usermod -aG sudo devuser
# 配置免密sudo可选
sudo echo 'devuser ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/devuser
sudo chmod 0440 /etc/sudoers.d/devuser

注意:Ubuntu默认锁定root用户的直接登录权限,就算设置了root密码,也需要修改sshd_config的PermitRootLogin配置才允许root直接通过SSH登录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:30:43