我刚刚注意到,我的 authorized_keys 中的大多数 ssh 公钥都以 == 或 = 结尾
例如
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9ZUwxXn2HZAAUswoaV8t2sQPvolVWDI053f0giNN154Zyi9FtWJKvyLHXoxW4IzFxgx+m6EYqXG/XCtfamLhwvGZv9FXkgQKeF6HJv/rjyKRBHPRyX0vV4S9uQU+xQV7f0Ock3urSzbUyoCgngA8Ax6AkYGmMTLLjx1HOBO/TJ477aysWt4IAg1gviT50I4xOYiHT4vC67czoDTnPl0UfKQJaM0+6WrneK7FJbd/8CAX7P7IxOhj1OxVbnEoh9FvecLbSDdOx/LF+kJcav/LThuoG7NR+Y+rS9lNkta3/KPi3IBMPum+bZpXJF7fkHl9Kx/iOMitT7KjNW/mty74xw== foo@bar
然而今天我看到一个公钥末尾没有等号。我还注意到公钥中唯一出现 = 的地方就是末尾,其他地方从不出现。
现在我只是好奇公钥末尾的零个、一个或两个等号是什么意思?
答案1
我认为没有技术原因,这只是 Base64 和字符串长度的产物。使用任何 Base 64 编码器尝试一下
1 -> MQ== (1 characters, 2 equals)
12 -> MTI= (2 characters, 1 equals)
123 -> MTIz (3 characters, 0 equals)
1234 -> MTIzNA== (4 characters, 2 equals)
[repeat]
但我可能错了