我已经成功地将SSH密钥添加到新生成的实例一段时间了,但突然间它才刚刚起作用。它们的密钥不会添加到目标帐户(如果帐户不存在,则不会创建该帐户)。它仍适用于我的一个项目,但它不包含另一个包含第一个代码的改编版本。两个代码所经历的步骤如下:
ssh-keys
属性设置为上一步中以Google Cloud(<username>:ssh-rsa <key> <username>
)理解的格式生成的公钥。当我在Google云端控制台上查看实例数据时,它在SSH密钥部分中为正确的用户分配了正确的密钥。但是,当我SSH到实例时,密钥尚未添加到该用户的authorized_keys
文件中。为了以防万一,我尝试在没有该用户的情况下重新创建快照,以便可以即时创建用户(这应该可行),但在这种情况下,用户不会被创建。
最后,Google Cloud就好像SSH密钥不在元数据中,但它确实如此。我来到了this answer,但似乎无法理解这一部分:
作为直接结果,GCE平台负责在实例(...)中放置/删除ssh密钥,仅在您未指定自己的密钥时(在实例创建时或以后)。如果这样做,GCE平台会将ssh密钥管理视为手册,并且不会与元数据存储保持同步。
我没有看到我正在做的任何事情可能会触发它进入手动模式,但显然某处存在问题。
我刚尝试从较旧的快照运行相同的进程,它运行完美。我会进一步调查,看看是什么原因造成的。
答案 0 :(得分:0)
您需要拥有Guest Tools的最新版本。以下是在Ubuntu上安装最新版本的示例:
$ sudo apt-add-repository universe
$ sudo apt install -y python-google-compute-engine python3-google-compute-engine google-compute-engine-oslogin gce-compute-image-packages
您可以阅读here更多详细信息和其他操作系统。