Compute Engine为OS Login生成的SSH密钥的默认到期时间。

5 浏览
0 Comments

Compute Engine为OS Login生成的SSH密钥的默认到期时间。

我正在尝试更多地了解OSLogin功能。如果我使用OSLogin启动一个SSH会话,由Compute Engine生成的SSH密钥的默认到期时间是多久?一旦密钥过期,现有的SSH会话会被强制终止吗?还是有延长会话的选项?

0
0 Comments

问题出现的原因是用户想了解Compute Engine在OS Login中为Google账户添加公钥时生成的SSH密钥的默认到期时间。解决方法是用户可以通过使用SDK或控制台命令来添加公钥,而不是使用Directory API的"try it"功能。以下是原文内容的整理:

OS Login的一个概念是简化密钥管理[1]。如果您拥有正确的权限并尝试连接到实例,如果您没有密钥,系统会自动生成一个密钥。尽管您可以选择手动管理密钥[2]。

回答您的问题,即使OS Login生成的SSH密钥过期,您的会话也不会终止。通常,在密钥过期后尝试启动SSH会话时会出现错误。但是,使用OS Login,您不会遇到错误,因为会为您生成一个新密钥。

如果您希望保持SSH会话长时间运行并避免空闲超时,建议您查看这个答案[3]。

我检查了由OS Login自动生成的SSH密钥和Compute Engine的普通密钥,它们似乎没有到期日期。

请参考文档的这一部分将现有的SSH密钥添加到Compute Engine [4],我建议您使用控制台方法进行操作。

要创建新的密钥,请参考这一部分[5]

在Linux机器或Cloud Shell上运行以下命令:

ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]

然后将私钥设置为只读:

chmod 400 ~/.ssh/[KEY_FILENAME]

[1] https://cloud.google.com/compute/docs/oslogin

[2] https://cloud.google.com/compute/docs/instances/managing-instance-access#add_oslogin_keys

[3] https://stackoverflow.com/a/25087194/12852097

[4] https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#project-wide

[5] https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys#createsshkeys

嗨Erhard,谢谢您的回答。我特别想知道当Compute Engine向Google账户添加公钥时的到期时间是多少。当我检查配置文件时,我认为该值为0。这是否意味着它永远不会过期?

另外,如果我想推送自己的公钥,请给我一个格式的示例。

我尝试了ssh-rsa keyvalue account name。但它没有起作用。

嗨Nagesh,我编辑了我的回答。是的,0表示没有到期日期。

嘿Erhard,非常感谢您的信息。在测试过程中我观察到:如果我创建了自己的SSH密钥对,我可以使用osloginapi推送公钥,并且会创建一个Linux配置文件(用户名、主目录、uid、gid等)。但是当我使用Directory API(我使用了Google自己的TRY API功能)推送密钥时,它不会创建OSLogin配置文件。因此,无法通过SSH连接到我从未使用控制台/gcloud登录过的全新实例。这里可能有什么遗漏吗?

嗨Nagesh,在您的情况下,我不知道问题出在哪里。当我删除我的OSLogin配置文件时,添加密钥后它会重新创建。我使用的是调用API的gcloud命令。我使用的命令是'gcloud compute os-login ssh-keys add'。

嗨Erhard,它在gcloud和控制台上运行良好。问题出在Directory API上。由于某种原因,它只添加了SSH密钥,但没有创建Linux配置文件。

你好Nagesh,我使用Directory API尝试过,并成功为我创建了一个配置文件。您可以发布一些显示该过程的截图吗?如果您愿意,可以私下发送。只需确保隐藏项目名称等敏感信息。

嘿Erhard。对不起,我回复晚了。我很忙。所以,我是为了poc而尝试的,并且现在没有详细信息。我需要重新进行poc才能提供详细信息。但是我尝试过在浏览器中使用Google的API,其中有一个"try it"选项。当您尝试使用Directory API时,您是使用SDK还是在浏览器中尝试的?

嗨Nagesh,我使用了SDK,因为我更习惯使用控制台命令。

啊!好的。非常感谢Erhard。所以,可能"try it"功能尚不支持此功能。当我使用它时,在输入部分中没有选择这些输入的选项。我仍然继续手动添加它们。它将密钥添加到配置文件,但它没有在Linux实例或该配置文件更新中创建它们。我将尝试使用SDK。再次非常感谢!感谢您的快速回复。

0