![sshd 如何知道哪个用户属于哪个 AuthorizedKeysFile?](https://linux22.com/image/192944/sshd%20%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E5%93%AA%E4%B8%AA%E7%94%A8%E6%88%B7%E5%B1%9E%E4%BA%8E%E5%93%AA%E4%B8%AA%20AuthorizedKeysFile%EF%BC%9F.png)
如果我为 设定自定义路径AuthorizedKeysFile
,如何sshd
决定该密钥属于哪个用户?
授权密钥文件
指定包含可用于用户身份验证的公钥的文件。 AuthorizedKeysFile 可能包含 %T 形式的令牌,这些令牌在连接设置期间被替换。定义了以下标记:%% 替换为文字“%”,%h 替换为正在验证的用户的主目录,%u 替换为该用户的用户名。扩展后,AuthorizedKeysFile 将被视为绝对路径或相对于用户主目录的路径。默认值为“.ssh/authorized_keys”。
答案1
sshd
不需要决定一个密钥属于哪个用户;它知道哪个用户正在尝试连接(目标系统上的用户),并且它知道在尝试中提供了哪个密钥。
扩展后, 指向的文件AuthorizedKeysFile
用于确定目标用户是否允许提供的密钥。同样,它已经知道这是哪个用户(并且当它相对于目标用户的主目录时,它需要%u
首先替换或查找该文件)。