【问题标题】:Ansible SSH Connection when using Google-Authenticator使用 Google-Authenticator 时的 Ansible SSH 连接
【发布时间】:2019-09-29 18:24:28
【问题描述】:

我想问一个可能没有真正答案但可以挽救我生命的问题。

所以昨天我开始在我的所有服务器上使用 google-authenticator 进行第二因素身份验证。

我正在使用 Ansible 配置我的所有主机,因此显然与它建立连接对我来说非常重要,所以,我所做的是将这一行添加到我的 /etc/pam.d/ssh 文件中

auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf

如果我符合我在 /etc/security/access-local.conf 中添加的规则,我认为它会返回成功

#localhost doesn't need two step verification
+ : ALL : <<localnetworkip>>/24
+ : ALL : LOCAL
#All other hosts need two step verification
- : ALL : ALL

所以我允许来自本地网络的任何机器。当我尝试从我的 ansible ssh 到主机(它不要求我提供验证码)但是当我尝试在同一个本地 IP 上运行 ansible playbook 时,这项工作有效:

致命:[宿主]:无法访问! => {"changed": false, "msg": "通过 ssh 连接主机失败:权限被拒绝(键盘交互)。", "unreachable": true}

我认为 Ansible 不知道如何处理键盘交互,有没有人设法绕过它?

谢谢

【问题讨论】:

    标签: ansible google-authentication pam sshd google-authenticator


    【解决方案1】:

    所以我至少想出了如何在我的情况下绕过这个。

    我在 /etc/ssh/sshd_config 的末尾添加了以下规则

    Match Address <<localnetworkip>>/24
        AuthenticationMethods publickey keyboard-interactive
    

    因此,内部网络不再强制进行 Google 身份验证

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多