ssh 中的 %u 是什么?它仅适用于目录结构吗?

ssh 中的 %u 是什么?它仅适用于目录结构吗?

我正在查看一个示例 sshd 配置文件,我发现一行说

AuthorizedKeysFile /etc/ssh/%u.authorized_keys  

我想知道%u在这里意味着什么?它正在寻找一个名为 - www-user.authorized_keys 的文件。%u 应根据我提供的登录 ID 扩展为 www-user。仅当我有像 /home/%u/authorized_keys 这样的文件夹时,它才会扩展到 www-user,然后它会扩展到 /home/www-user/authorized_keys。但是,如果我给出/home/%u/%u.authorized_keys。文件名不会扩展为 www-user.authorized_keys。这是 openssh 中的已知问题或错误吗?它曾经在 openssh 版本 6.x 中工作,但似乎不适用于 7.x 版本。我错过了什么吗?

答案1

%u不是你的 shell 的一个功能,而是一个代币具体到文件的解释sshd_config

man sshd_config

TOKENS
     Arguments to some keywords can make use of tokens, which are expanded at
     runtime:

           %%    A literal ‘%’.
           %F    The fingerprint of the CA key.
           %f    The fingerprint of the key or certificate.
           %h    The home directory of the user.
           %i    The key ID in the certificate.
           %K    The base64-encoded CA key.
           %k    The base64-encoded key or certificate for authentication.
           %s    The serial number of the certificate.
           %T    The type of the CA key.
           %t    The key or certificate type.
           %u    The username.

%u因此,如果通过扩展到(远程)用户名来查找文件。

类似的标记用于许多其他上下文中,例如

相关内容