Ansible-MFA付きバスティオンを介したアクセス


9

現在の環境では、MFAが有効になっている要塞ホストを介してのみ、すべてのLinuxサーバーにアクセスできます。

Ansibleが要塞を介してサーバーと正常に通信できるようにしましたが、唯一の問題は、ホストごとに要塞への新しい接続を確立することです。つまり、サーバーと同じ数のMFAキーを入力する必要があります。悪い時代。:(

多重化を機能させるために、私のssh設定で次のようなものをいじってみました:

Host bastion
  ControlMaster auto
  ControlPath ~/.ssh/ansible-%r@%h:%p
  ControlPersist 5m

残念ながらそれはそれをしていないようです。誰かが、要塞ホストを介して接続するすべてのホストについて、Ansibleが接続を再確立して接続を再確立できないようにする方法についていくつかのヒントを得ましたか?

ありがとう!


おそらくあなたにはすでに発生していますが...要塞ホストがパケット転送だけでなく通常のログインアクセスを許可し、ansible構成に大量のファイルが含まれていない場合は、要塞から直接構成を実行してみてください。 。
パルティアンショット

必ずしも要塞ホストからではなく、同じ環境内の任意のホストである可能性があります。専用のAnsible制御ホストがあります。これにより、ユーザーは奇妙なAnsible設定やサポートされていないAnsibleバージョンが実行されなくなります。また、これによりプレイブックの速度が大幅に向上します。
うどんだん2016年

(MFAとは何なのかわかりません)ForwardAgentワークステーションのssh構成で(要塞ではなく)有効にしますか
Baptiste Mille-Mathias

回答:


1

要塞ホストでAnsibleを実行しているこのブログ投稿を偶然見つけました。

どうやら、要塞ホストを制御ホストに追加する必要がありますssh_config

Host 10.10.10.*
  ProxyCommand ssh -W %h:%p bastion.example.com
  IdentityFile ~/.ssh/private_key.pem

Host bastion.example.com
  Hostname bastion.example.com
  User ubuntu
  IdentityFile ~/.ssh/private_key.pem
  ControlMaster auto
  ControlPath ~/.ssh/ansible-%r@%h:%p
  ControlPersist 5m

編集ssh_args中でansible.cfg

[ssh_connection]
ssh_args = -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m control_path = ~/.ssh/ansible-%%r@%%h:%%p

これで構成のbastion一部がカバーされます。以下のためMFA一部この中に一部のユーザーgithubの発行、AnsibleでSSHセッションを使用することが可能であるという主張は、Ansibleの外側を開きました。

2FAを持つホストへの初期接続を開いてから、別のウィンドウで次のように実行します。

ansible-playbook thing.yml --ssh-common-args='-o ControlPath=~/.ssh/connshare'

要塞ホストの設定はまだありませんが、この戦略は試す価値があると思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.