znerol.ssh_kba
役割名
マシン間通信用のSSH公開鍵認証を設定します。
要件
OpenSSHサーバーおよびクライアントソフトウェアが必要です。
役割の変数
一般的な設定では、この役割はSSHクライアントまたはSSHサーバーに適用されます。もう一方の側のタスクは、ssh_kba_server_hostname
およびssh_kba_client_hostname
を設定することで委任できます。また、ほとんどの場合、デフォルトに依存するのではなく、ssh_kba_server_user
およびssh_kba_client_user
を明示的に指定することが推奨されます。
注意: SSHホストキーは、Ansibleファクトから収集されます。したがって、関与するすべてのマシンのファクトを事前に収集しておくことが重要です。
サーバーに影響を与える変数
公開鍵認証を使用するSSH接続のサーバー側エンドポイントを表すホストとユーザー:
ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # ファクトに基づくサーバー上のAnsibleユーザー。
クライアントに影響を与える変数
ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # ファクトに基づくサーバー上のAnsibleユーザー。
ssh_kba_client_host_fqdn: # ファクトに基づくサーバーのFQDN。
ssh_kba_client_host_ip4: # ファクトに基づくサーバーのデフォルトIPアドレス。
ssh_kba_client_host_ip6: # ファクトに基づくサーバーのデフォルトIPアドレス。
鍵ペアに影響を与える変数
ssh_kba_keypair_type: rsa # dsa, ecdsa, ed25519, rsaのいずれか
ssh_kba_keypair_size: # デフォルトでは省略
ssh_kba_keypair_comment: "{{ ssh_kba_client_user }}@{{ ssh_kba_client_hostname }}"
ssh_kba_keypair_dir: ~/.ssh
ssh_kba_keypair_name: "id_{{ ssh_kba_keypair_type }}"
ssh_kba_keypair_path: "{{ ssh_kba_keypair_dir }}/{{ ssh_kba_keypair_name }}"
ssh_kba_keypair_owner: "{{ ssh_kba_client_user }}"
ssh_kba_keypair_group: # デフォルトでは省略
ssh_kba_keypair_attributes: # デフォルトでは省略
ssh_kba_keypair_selevel: # デフォルトでは省略
ssh_kba_keypair_serole: # デフォルトでは省略
ssh_kba_keypair_setype: # デフォルトでは省略
ssh_kba_keypair_seuser: # デフォルトでは省略
ssh_kba_keypair_force
がyes
に設定されている場合、鍵ペアは再生成されます。
ssh_kba_keypair_force: # デフォルトでは省略
ファクトssh_kba_keypair_pub
は、役割評価中に鍵ペアの公開部分に設定されます。
サーバーの認証鍵ファイルに影響を与える変数
ssh_kba_keypair_pub: # 上記の鍵ペアセクションを参照
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # デフォルトでは省略
ssh_kba_server_authorized_keys_exclusive: # デフォルトでは省略
ssh_kba_server_authorized_keys_key_options: # デフォルトでは省略
ssh_kba_server_authorized_keys_manage_dir: # デフォルトでは省略
ssh_kba_server_authorized_keys_path: # デフォルトでは省略
クライアントの既知のホストファイルに影響を与える変数
ssh_kba_client_known_hosts_owner: "{{ ssh_kba_client_user }}"
ssh_kba_client_known_hosts_hash_host | default(omit) }}"
ssh_kba_client_known_hosts_path | default(omit) }}"
サーバーのFQDN、IP、およびホストキーのファクトが収集され、クライアントのknown_hosts
で利用できるようになります。次の変数のいずれかをオーバーライドすることで、この動作が変更されます:
ssh_kba_server_host_fqdn: # ファクトに基づくサーバーのFQDN。
ssh_kba_server_host_ip4: # ファクトに基づくサーバーのデフォルトIPアドレス。
ssh_kba_server_host_ip6: # ファクトに基づくサーバーのデフォルトIPアドレス。
ssh_kba_server_host_names: # FQDNとデフォルトIPアドレスのリスト。
ssh_kba_server_host_keys: # 各ペアがキータイプ(最初のフィールド)と実際のホストキー(2番目のフィールド)で構成されるリスト。デフォルトはホストファクトから利用可能な値です。
上記の変数は、ホスト名とキーのペアのリストを持つ変数を生成するために使用されます:
ssh_kba_server_host_names_and_keys: # 各ペアがホスト名(またはIPアドレス)と対応するホストキー(`known_hosts`モジュールが受け入れる形式)で構成されるリスト。
依存関係
なし。
例: プレイブック
- hosts: server.example.com
tasks:
- name: クライアントファクトの収集
delegate: client.example.com
delegate_facts: yes
setup:
- name: >-
client.example.com 上の beta に
server.example.com 上の alpha に鍵ベースの認証を付与
vars:
ssh_kba_server_user: alpha
ssh_kba_client_hostname: client.example.com
ssh_kba_client_user: beta
import_role:
name: znerol.ssh_kba
ライセンス
BSD