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