gpt4 book ai didi

linux - 为 openssh 使用 pam_exec 的帐户的外部脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:43 30 4
gpt4 key购买 nike

我有一个 PHP 应用程序,其中包含用户名和公共(public) SSH key 。我想将这些帐户用作 openssh 的用户后端。

我想我需要使用 pam_exec 和 PHP/Bash 脚本。我写了一个可以在 CLI 上执行的 php 脚本(shebang 设置了一个 php 可执行文件的环境)。如果我需要将它包装在 bash 脚本中而不是访问环境变量,我可以这样做。该脚本目前将用户名作为其第一个也是唯一的参数,如下所示:

/opt/scripts/my-auth-script.php user_to_look_for

脚本将在成功(用户存在)时退出 0,如果不成功则退出 1。它目前也回显 OK 或 Failed,但我可以轻松地将其关闭。

所以,我的问题是,在查看用户帐户的实际主机系统之前,我如何让 pam_exec 调用我的脚本来查找用户帐户?

最佳答案

我已经开始工作了。方法是在sshd_config中设置openssh的AuthorizedKeysCommand和AuthorizedKeyUser设置。有一个警告,github 和其他人通过在客户之间共享的单个登录用户提供 ssh 作为服务的原因是被调用的用户必须可由正在登录的系统解析,因此它们必须存在于本地,或者用户数据库必须连接到 LDAP 之类的远程源,然后也必须将其集成到应用程序中。

不过,解决这个问题的方法是,AuthorizedKeyCommand 可以采用参数,%u 用于用户名,在这种情况下,%k 用于 key 或 %f 用于 key 的 sha256 指纹。然后,该脚本可以忽略给它的通用用户名,然后只检查数据库以查找 key 或指纹的匹配项。如果我们找到它,我们就有了该 key 的用户和成功的身份验证。如果不是,我们不会。

关于linux - 为 openssh 使用 pam_exec 的帐户的外部脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41914212/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com