sshd 手册页让我和其他管理系统的人感到困惑。
在“AUTHORIZED_KEYS FILE FORMAT”下有以下声明:
选项字段是可选的;它的存在取决于该行是否以数字*开头。
在什么情况下一行会以数字开头?也许手册页混淆了协议 1 和协议 2 的信息。
稍后我们将给出一个示例 authorized_keys 文件,我认为它是 Protocol 2 样式,因为它有一个 keytype 查找字段。但它是多行的,在 key 后面的行上有选项。
环顾四周,我发现单行和多行格式都有使用。我怀疑多行格式无效。
这是正确的吗,或者是否有一些版本允许这样做。
答案1
在什么情况下一行会以数字开头?也许手册页混淆了协议 1 和协议 2 的信息。
SSHv1 协议的公钥未经过 base64 编码,因此以数字开头。2
附录authorized_keys2
并不意味着 SSHv2 密钥,而只是包含密钥的第二个文件。这两个文件的语义相同,并且可以(在删除 SSHv1 代码后不再如此)混合包含 SSHv1 和 SSHv2 密钥。
当前版本的手册页不再有这句话:
公钥由以下以空格分隔的字段组成:选项、密钥类型、base64 编码的密钥、注释。 选项字段是可选的。 密钥类型为“ecdsa-sha2-nistp256”、“ecdsa-sha2-nistp384”、“ecdsa-sha2-nistp521”、“ssh-ed25519”、“ssh-dss”或“ssh-rsa”;注释字段不用于任何用途(但可能方便用户识别密钥)。
公钥的预期格式也如上所述(可能不在您的旧版本中)。