我的 ssh 服务器中有一个使用 和 创建的受严格限制的用户--no-create-home
。--shell /bin/false
我知道我可以为用户的公钥定义authorized_keys
文件sshd_configs
。但是,如何允许此用户进行公钥身份验证,而无需访问操作系统上的任何文件?
答案1
diya 有已经解释过了您可以将其更改AuthorizedKeysCommand
为检索用户的公钥。
但是,将 authorized_keys 文件放在其他位置可能更方便。例如,您可以将AuthorizedKeysFile /etc/ssh/authorizedkeys/%u
原本位于的文件设置并放置在~username/.ssh/authorized_keys
at/etc/ssh/authorizedkeys/username
处。
而且,如果你只想为这个用户更改它(以便其他用户仍然拥有他们的authorized_keys
)~/.ssh/
,你可以使用
Match User username
AuthorizedKeysFile /some/path/username_authorized_keys
答案2
包含公钥的文件的替代方案是 openssh 服务器指令AuthorizedKeysCommand
它允许您配置您的 sshd 守护程序来运行特定的辅助程序来检索您通常存储和部署在用户文件中的公钥˜/.ssh/authorized_keys
。
使用 LDAP 目录是一种常见的解决方案,查询 API 或(MySQL)数据库是其他示例。
例如: