![ssh 中的 %u 是什么?它仅适用于目录结构吗?](https://linux22.com/image/171698/ssh%20%E4%B8%AD%E7%9A%84%20%25u%20%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F%E5%AE%83%E4%BB%85%E9%80%82%E7%94%A8%E4%BA%8E%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E5%90%97%EF%BC%9F.png)
我正在查看一个示例 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
因此,如果通过扩展到(远程)用户名来查找文件。
类似的标记用于许多其他上下文中,例如