ssh_known_hosts
sshknownhostsrole
Это роль Ansible, которая управляет файлом известных хостов SSH, обычно расположенным по адресу /etc/ssh/ssh_known_hosts
или ~user/.ssh/known_hosts
.
Основная цель этой роли — обернуть модуль sshknownhosts, расположенный по адресу https://github.com/bfmartin/ansible-sshknownhosts, и сделать его подходящим для Ansible Galaxy.
Требования
Любая система, похожая на Unix, с установленным сервером openssh должна работать.
Безопасность
Если файл 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
Информация об авторе
Байрон Ф. Мартин
Электронная почта: 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/ansible-sshknownhosts-role