[英]Google Cloud not managing users/SSH in VMs
我们已经升级了 Google Cloud 实例中的 Debian 分布,GCloud 似乎无法再管理实例中的用户及其 SSH 密钥。
我已经安装了以下工具:
gcloud compute ssh
连接时,它死于
权限被拒绝(公钥)
我还缺少什么?
编辑:
您是否已将 SSH 密钥添加到项目元数据或实例元数据? 如果它的实例元数据,项目级别 ssh 密钥是否被阻止?
我没有添加任何元数据。
您的用户帐户是否在项目中具有对实例的 SSH 的必要权限(例如所有者、编辑或计算实例管理员 IAM 角色)?
是的,这在 debian 升级到 bookworm 之前一直有效。 我可以看到所有与 google-cloud 相关的包都被删除了,我不得不安装它们。
您是否可以使用 ssh 客户端(例如 Putty)将 SSH 连接到实例?如果可以,您需要确保实例上正在运行 Google 客户经理守护程序。
我可以很好地使用在 Debian 升级之前在机器上处于活动状态的帐户 SSH。 这些帐户已经正确设置并运行了.ssh
目录。 新的谷歌用户无法登录。
试试
gcloud beta compute ssh --zone ZONE INSTANCE_NAME --project PROJECT
这仅适用于 Debian 升级前活跃的用户。
如果是,您需要确保 Google 客户经理守护程序正在该实例上运行。
我安装了缺少的google-compute-engine-oslogin
package,但似乎没有效果,新用户仍然无法登录。
编辑2:
When connecting to serial console, it gets stuck on: csearch-dev google_guest_agent[2839775]: ERROR non_windows_accounts.go:158 Error updating SSH keys for gke-495d6b605cf336a7b160: mkdir /home/gke-495d6b605cf336a7b160/.ssh: no such file or directory.
- 同样的问题, SSH 密钥从未转移到实例中。
您可以执行以下几项操作来解决权限被拒绝(公钥)错误消息的问题:
首先,您必须确保您已使用具有compute instance admin 角色的 IAM 用户通过 gcloud 正确验证自己。 您可以通过运行gcloud auth login [USER]
然后再次try gcloud compute ssh
来做到这一点。
您还可以验证 Linux 来宾环境脚本是否已正确安装和运行。 请参阅 此页面以获取有关验证、 更新或手动安装来宾环境的信息。
另一种可能性是私钥丢失或我们的密钥对不匹配。 要强制 gcloud 生成新的 SSH 密钥对,您必须先移动~/.ssh/google_compute_engine
和~/.ssh/google_compute_engine.pub
如果存在),例如:
mv ~/.ssh/google_compute_engine.pub ~/.ssh/google_compute_engine.pub.old
mv ~/.ssh/google_compute_engine ~/.ssh/google_compute_engine.old
完成后,您可以再次尝试gcloud compute ssh [INSTANCE-NAME]
,应该创建一个新的密钥对,并将公钥添加到 SSH 密钥元数据中。
请参阅Sunny-j和Answer以查看受影响实例的串行端口日志,以获取有关该问题的可能线索。 另请参阅解决被锁定在 Compute Engine 之外的问题以获取更多信息。
编辑:请参阅此类似的SO和使用串行控制台进行故障排除,这有助于解决您的错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.