为啥谷歌破坏了向虚拟机添加公共 SSH 密钥的能力?

Posted

技术标签:

【中文标题】为啥谷歌破坏了向虚拟机添加公共 SSH 密钥的能力?【英文标题】:Why Has Google Broken The Ability To Add Public SSH Keys to VMs?为什么谷歌破坏了向虚拟机添加公共 SSH 密钥的能力? 【发布时间】:2021-12-09 08:21:50 【问题描述】:

我使用 Google 云已经近十年了,在我托管在那里的任何服务器上安装公共 SSH 密钥时从未遇到过问题。我用 PUTTY 生成我的密钥,并且一直都有。我使用 2048 位的 RSA,然后在密钥末尾添加等号和用户名“== 用户名”(以前需要使其成为 Google Cloud 上的有效密钥),但我现在遇到了一个大错误.

无效的密钥。所需格式: google-ssh "userName":"","expireOn":" "'''

(减去 html 中的空格)

我是唯一遇到此问题的 GC 用户吗?我只是想知道,因为我找不到任何关于这个问题的解决方案,也没有提到它现在是一个问题。

【问题讨论】:

请将您的问题移至Super User(在此处删除,在此处重新发布)。这是off-topic here。 【参考方案1】:

是的,我正在回答我自己的问题,因为我通过使用我提供的 SSH 密钥的格式找到了解决方案。出于某种原因,删除两个等号“==”使 Google 接受了密钥。我不明白为什么这很重要,但似乎他们在后台改变了一些东西。

我没有删除这个问题,而是留下一个答案,以防其他人遇到这个问题。

【讨论】:

你为什么首先添加它们?添加 == 不是必需的,实际上会破坏 base-64 编码。您有时会看到这些字符用于 base-64 填充,但仅在需要填充长度时才会看到。 是的,一开始就不需要 ==。谷歌过去常常从放在密钥末尾的电子邮件地址创建用户名。但是现在他们需要我们把用户名和密钥文件放在一起。

以上是关于为啥谷歌破坏了向虚拟机添加公共 SSH 密钥的能力?的主要内容,如果未能解决你的问题,请参考以下文章

利用Xshell配置ssh免密码登录虚拟机,进行虚拟机与物理机的传输

Hapoop 搭建 设置虚拟机SSH无密钥登陆

我如何通过 ssh 连接到谷歌合作虚拟机?

vm虚拟机为啥用ifconfig命令查看不到ip呢?导致无法连接到ssh,求各位大侠解惑.

如何在不访问主机的情况下 ssh 到 KVM 来宾 VM?

ssh 密钥密码在 Windows 中有效,但在 linux 中无效