【发布时间】:2019-07-27 10:43:46
【问题描述】:
我希望能够根据使用 OpenSSH 的外部脚本的结果来阻止或允许用户。我看到 libssh 有 support for callbacks,但在阅读 OpenSSH 手册页后,我找不到任何将此功能交给用户的地方。
例如,我希望能够维护包含用户名黑名单或白名单的文件甚至 API,并让 OpenSSH 在身份验证过程中查阅这些列表。
到目前为止我的想法,以及为什么它们还不够:
利用
sshd_config:AllowUsers。这是一个开始,但由于它不从文件中读取,因此它不是动态的。每次都需要更改配置文件并重新启动服务。此外,通过脚本修改配置文件既危险又可怕。使用
sshd_config:AuthorizedKeysCommand。不幸的是,虽然这确实允许您指定脚本并根据结果授予访问权限,但它不允许拒绝访问.如果脚本没有返回任何内容,sshd将继续尝试其他身份验证方法。使用实现
libssh回调的附加项重新编译 OpenSSH。出于可维护性的明显原因,我宁愿不这样做。
我在阅读文档时错过了另一种方法吗?
【问题讨论】: