サーバーのファーム全体を管理できるように設定しています。私のアプローチは次のとおりです。
ユーザーが、重いRSAキー、パスフレーズで保護されたユーザーパスワードを使用して、接続を保護するすべてのサーバーに接続できるようにします。
プロセスを可能な限り自動化するために、RSAパスフレーズとユーザーパスワードをボールトファイルまたは暗号化された文字列で渡したいと思います。
クライアントで両方の認証方法(公開鍵+ユーザーパスワード)を設定した場合、テストサーバーにpingを実行するだけでテスト(パスワードを手動で渡す)すると、RSAパスフレーズの入力を求められますが、パスワードは表示されません。プレイブックの失敗。
認証方法としてユーザーパスワードを設定しただけでは、プレイブックは正常に実行されます。
パスフレーズ認証を使用してRSAキーを設定しただけでジョブが終了しない場合、これは画面に少なくとも30分間表示された出力です(調査、コーヒーなどの時間)。
PLAY [all] ******************************************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************
Enter passphrase for key '/home/users/<user_name>/.ssh/id_rsa':
ok: [<test_server_ip_address>]
TASK [include vars] *********************************************************************************************************************************************************
ok: [<test_server_ip_address>]
TASK [test connection] ******************************************************************************************************************************************************
そして他の何でも。
私が実行しようとしているプレイブックはこれです
---
- hosts: all
tasks:
- name: test connection
ping:
そして、playbokを実行するコマンドは次のものです:
ansible-playbook -i ansible_hosts/test_hosts.yml playbooks/ping.yml
test_Host.yml
の内容:
all:
hosts:
<test_server_ip_address>
私の質問は:
Ansibleに二要素認証を設定することは可能ですか?はいの場合、誰かが私を正しい方向にリダイレクトできますか?
Ansibleボールトからsshキーのパスフレーズを使用できるかどうかは疑問ですが、一般的な2要素ワークフローは次のとおりです。
サーバー側で、2要素認証を有効にします
AuthenticationMethods "publickey,password"
sshd_config
で。
クライアント側(Ansible):
ansible_password
を定義します