SSH 公钥注释分隔符

SSH 公钥注释分隔符

我在两台不同的服务器中创建了一个 SSH 身份验证密钥(带有ssh-keygen),两者都带有有用的注释,但一台服务器的公钥位于==密钥和注释之间,而另一台服务器根本没有分隔符。

这是正确的吗?

答案1

您的 SSH 密钥以 Base 64 进行编码。此格式通常用于密码学(及其他领域)以 ASCII 格式存储二进制信息。

而且,在 base64 中,“=”符号是一个填充字符,具有非常具体的含义:

'==' 序列表示最后一组仅包含 1 个字节,而 '=' 表示它包含 2 个字节。下面的示例说明了截断上述整个引用的输入如何更改输出填充

来源:http://en.wikipedia.org/wiki/Base64#Padding

事实上,键和注释之间没有分隔符。 SSH 知道公钥由 3 部分组成:

<key-type>[space]<public-key>[space]<comment>

公钥末尾的空格是密钥和注释之间的分隔符。您看到的等号“=”仅表示公钥末尾的填充。

相关内容