Duo MFAを使用してsudoアクセスのSSHログインを自動化する方法

Duo MFAを使用してsudoアクセスのSSHログインを自動化する方法

質問:

MFAアクセスを必要とするLinux(ubuntu)サーバーをリモートで設定するために、MacでAnsibleを実行しようとしていますsudo。私の目標は、セキュリティチームのニーズに応じてMFAを維持しながら、MFAプロセスが認証された後にAnsibleを使用できるようにすることです。 SSHでControlFileを使用してこれを行う方法を説明する関連クエリが見つかりました。https://stackoverflow.com/a/64671608/1910490

説明すると、sudoを手動で使用するプロセスは(現在)次のようになります。

# login using ssh key
> ssh server_name 
# run sudo
> sudo su

$ sudo su
Duo two-factor login for <username>

Enter a passcode or select one of the following options:

 1. SMS passcodes to XXX-XXX-<number>

Passcode or option (1-1):

> 1

New SMS passcodes sent.

Duo two-factor login for <user>

Enter a passcode or select one of the following options:

 1. SMS passcodes to XXX-XXX-<number> (next code starts with: 1)

> <code>


Success. Logging you in...

この時点で、セッションにはsudoアクセス権があります。

私が試したこと

使ってみました。共有制御ファイルSSHを使用すると、あるセッションがsudo MFAプロセスを完了した別のセッションにアクセスできます。理論的には、これはsudoアクセスを持つ他の端末でAnsibleを実行し、MFA全体の問題を回避します。

私は.ssh/config次のように構成しました。

Host *
        ControlMaster auto
        ControlPath ~/.ssh/shared.%h.pipe
        ControlPersist 10m

セッションを開いた後、実際に制御ファイルが作成され、共有接続が使用されていると考えられます。

ただし、他の端末でsudoを使用しようとすると、まだsudo MFAプロンプトが表示されます。

私が試すことは可能ですか、それとも良い方法がありますか?

関連情報