gpt4 book ai didi

linux - 使用 pam_exec 进行 Azure 身份验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:20:54 26 4
gpt4 key购买 nike

我很难完成这项工作:我有一个 python 脚本,它执行所需的步骤以获得授权 URL。当我从终端运行此脚本时,我从 Azure 收到此消息:

To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code <CODE> to authenticate.

然后,脚本就会停止,直到您访问该 URL 并进行身份验证或发生超时。返回的错误代码为 0(验证成功)或 1(验证失败)。

问题是:当我想使用这个脚本进行 SSH 身份验证时,我在/etc/pam.d/ssh 中使用这一行:

auth sufficient pam_exec.so stdout <path to script>

这不起作用:我从来没有返回要进行身份验证的 URL,并且脚本只是超时。但是,如果我终止服务器中的 python 进程,那么我会在 ssh 客户端中获取 URL(尽管不再有用,因为该进程不存在)。

所以,似乎pam_exec转发了python进程的stdio,但只有当它终止时,其中的时间才有用。有人知道如何解决这个问题吗?也许使用另一个 pam 模块?谢谢!

最佳答案

好吧,我终于明白了整个问题。看来SSH(我不知道是服务器还是客户端)将所有不是提示的消息打包在一起,并将它们作为SSH横幅消息发送。这意味着服务器或客户端都充当缓冲区,因为这些是信息性消息。

因此,解决方案是将消息作为提示发送,因为这会强制客户端在收到消息后立即打印它(然后丢弃用户答案)。

关于linux - 使用 pam_exec 进行 Azure 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051327/

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