为啥谷歌破坏了向虚拟机添加公共 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免密码登录虚拟机,进行虚拟机与物理机的传输