我已将 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 包装在一起。