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
