37.11. Ansible を使用して、IdM クライアントへの SSH 鍵ログインを有効にする ID ビューを設定する
idoverrideuser Ansible モジュールを使用して、特定の IdM クライアントでキーベースのログインを行うために、Identity Management (IdM) ユーザーに SSH 鍵を割り当てます。
この手順では、idm_user という名前の IdM ユーザーが SSH 鍵を使用して client1.idm.example.com という名前の IdM クライアントにログインできるようにする ID ビューの例を使用します。
この ID ビューは、特定の HBAC ルールを強化するために使用できます。
前提条件
コントロールノード:
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) は、IdM クライアント、サーバー、またはレプリカの SSH 公開鍵として IdM ドメインに含まれています。 - idview_for_client1 ID ビューが存在する。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
次の内容を含む Ansible Playbook ファイル ensure-idoverrideuser-can-login-with-sshkey.yml を作成します。
--- - name: Playbook to manage idoverrideuser hosts: ipaserver become: false gather_facts: false vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure test user idm_user is present in idview idview_for_client1 with sshpubkey ipaidoverrideuser: ipaadmin_password: "{{ ipaadmin_password }}" idview: idview_for_client1 anchor: idm_user sshpubkey: - ssh-rsa AAAAB3NzaC1yc2EAAADAQABAAABgQCqmVDpEX5gnSjKuv97Ay ... - name: Ensure idview_for_client1 is applied to client1.idm.example.com ipaidview: ipaadmin_password: "{{ ipaadmin_password }}" name: idview_for_client1 host: client1.idm.example.com action: memberPlaybook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/inventory <path_to_playbooks_directory>/ensure-idoverrideuser-can-login-with-sshkey.ymlオプション:
rootの認証情報を持っている場合は、新しい設定を IdM クライアントシステムにすぐに適用できます。クライアントシステムに
rootとして SSH 接続します。$ ssh root@client1 Password:IdM クライアントで、SSSD キャッシュをクリアします。
# sss_cache -EIdM クライアントで、SSSD デーモンを再起動します。
# systemctl restart sssd
検証
公開鍵を使用してクライアントシステムに
SSH接続します。# ssh -i ~/.ssh/id_rsa.pub idm_user@client1.idm.example.com Last login: Sun Jun 21 22:34:25 2023 from 192.168.122.229 [idm_user@client1 ~]$
出力により、正常にログインしたことが確認されます。