我在两台不同的服务器中创建了一个 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>
公钥末尾的空格是密钥和注释之间的分隔符。您看到的等号“=”仅表示公钥末尾的填充。