t2d.ssh_known_hosts

sshknownhostsrole

これは、通常/etc/ssh/ssh_known_hostsまたは~user/.ssh/known_hostsにあるSSHのknown hostsファイルを管理するためのAnsibleロールです。

このロールの主な目的は、https://github.com/bfmartin/ansible-sshknownhosts にあるsshhknownhostsモジュールをラップし、Ansible Galaxyに適したものにすることです。

要件

OpenSSHサーバーがインストールされたUnix系のシステムで動作します。

セキュリティ

ssh_known_hostsファイルがssh-keyscanを使用してキーを検証せずに作成された場合、ユーザーは中間者攻撃に対して脆弱になります。一方、セキュリティモデルがそのリスクを許容する場合、ssh-keyscanは改ざんされたキーや中間者攻撃の検出に役立ちます。これは、ssh_known_hostsファイルが作成された後に発生した場合です。

(ssh-keyscanのマニュアルページから)

そのため、fingerprint属性を提供して手動でフィンガープリントを指定できます。

ロール変数

このロールは次の変数を使用し、デフォルト値があります:

ssh_known_hosts_path: 書き込む先のファイル。デフォルトは/etc/ssh/ssh_known_hostsで、~user/.ssh/known_hostsも良い代替手段です。

ssh_known_hosts_state: present(存在する)またはabsent(存在しない)。デフォルトはpresent。

ssh_known_hosts_enctype: スキャン対象の公開鍵エンコーディングタイプ。選択肢はrsa、dsa、ecdsa、またはed25519。デフォルトはrsaです。

ssh_known_hosts_port: リモートホストをスキャンする際に接続するポート。デフォルトは22です。

ssh_known_hosts_keyscan: スキャンに使用するプログラム。デフォルトは現在のパスのssh-keyscanです。

ssh_known_hosts: スキャン対象のホストとその属性の辞書のリスト:

ssh_known_hosts:
  - name: example.com
    state: present
    dest: /etc/ssh/ssh_known_hosts
    enctype: rsa
    port: 22
    keyscan: ssh-keyscan
    aliases:
      - www.example.com
      - www2.example.com

依存関係

なし。

使用例のプレイブック


- hosts: all
  vars:
    ssh_known_hosts:
      - name: example.com
        state: present
        dest: /etc/ssh/ssh_known_hosts
        enctype: rsa
        port: 22
        keyscan: ssh-keyscan
        aliases:
          - www.example.com
          - www2.example.com
      - name: srv.example.com
        fingerprint: AAAAE2VjZHNhLXNoYTItbmlzdHAyN...
  roles:
    - role: sshknownhosts

ライセンス

BSD

著者情報

バイロン・F・マーティン
メール: http://www.bfmartin.ca/contact
GitHub: bfmartin

プロジェクトについて

This is an ansible role that manages the SSH known hosts file usually located at /etc/ssh/ssh_known_hosts or ~user/.ssh/known_hosts.

インストール
ansible-galaxy install t2d.ssh_known_hosts
ライセンス
bsd-2-clause
ダウンロード
637
所有者