如何让 duo_security 和 git-shell 通过 SSH 协同工作

如何让 duo_security 和 git-shell 通过 SSH 协同工作

我已将 sshd 配置为通过 ssh 配置中的 FORCE_COMMAND 选项运行 duo 安全。这意味着每次我通过 ssh 登录时,duo 安全检查都会启动,这通常是一件好事。但是,对于 git login,我不希望这些启动,我想直接进入 git-shell。这对我来说很糟糕,因为 git-shell 正确地出错并且不允许我发送 git 命令。我收到错误:fatal: unrecognized command '/usr/sbin/login_duo'。这是因为 git-shell(根据设计)对 /usr/sbin/login_duo 一无所知。

有没有办法只为特定用户运行 FORCE_COMMAND?有什么建议可以解决这个问题吗?最好的方法是只为 git 创建单独的 sshd 吗?

答案1

您可以在 sshd_config 中按每个公钥粒度(而不是全局)配置 sshd 的强制命令支持。请参阅 duo_unix 文档中的示例:

http://www.duosecurity.com/docs/duounix#enable

因此,您可以通过使用该用户的 ~/.ssh/authorized_keys 中的“command=”将任何用户的任何公钥与 login_duo 包装在一起。

相关内容