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_forceyesに設定されている場合、鍵ペアは再生成されます。

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

プロジェクトについて

Setup SSH public key authentication for machine to machine communication.

インストール
ansible-galaxy install znerol.ssh_kba
ライセンス
Unknown
ダウンロード
373
所有者