我使用的是 sshd 通过选项调用的自定义密钥验证程序,而不是服务器上传统的authorized_keys 文件AuthorizedKeysCommand
。在 sshd_config 中,我可以指定应将用户的公钥作为参数提供给此命令,如下所示:
AuthorizedKeysCommand /path/to/verifier %k
Run Code Online (Sandbox Code Playgroud)
问题是密钥编码了大量附加数据,因此可能非常大。如果它大于大约 4135 字节,sshd 在扩展%k
令牌时会记录一个致命错误:
sshd[5914]: fatal: percent_expand: string too long
Run Code Online (Sandbox Code Playgroud)
我一直在梳理源代码,percent_expand
但没有看到任何地方string too long
可能会遇到此错误。代币大小似乎有某种限制,但它是什么呢?它是在哪里定义的?