sshd
OpenSSH Сервер
Эта роль настраивает демона OpenSSH. Она:
- По умолчанию настраивает SSH демон с обычными настройками операционной системы.
- Работает с различными дистрибутивами, подобными UNIX.
- Может настраиваться с использованием словарей или простых переменных.
- Поддерживает наборы Match.
- Поддерживает все параметры sshd_config. Шаблоны создаются программно. (см. meta/make_option_list)
- Проверяет конфигурацию sshd_config перед перезагрузкой sshd.
ПРЕДУПРЕЖДЕНИЕ Неправильная настройка этой роли может заблокировать вас на сервере! Пожалуйста, протестируйте вашу конфигурацию и ее взаимодействие с настройками пользователей прежде чем использовать в производстве!
ПРЕДУПРЕЖДЕНИЕ Digital Ocean разрешает вход под root с паролями через SSH на Debian и
Ubuntu. Это не является значением по умолчанию для этого модуля - он установит
PermitRootLogin without-password
, что позволит доступ через SSH-ключ, но не
через обычный пароль. Если вам нужна эта функция, обязательно установите
ssh_PermitRootLogin yes
для этих хостов.
Требования
Проверено на:
- Ubuntu precise, trusty
- Debian wheezy, jessie
- FreeBSD 10.1
- Распределения на базе EL 6,7
- Fedora 22, 23
- OpenBSD 6.0
Скорее всего, это будет работать на других версиях, дополнительная поддержка через соответствующие vars/ файлы приветствуется.
Переменные роли
Если не настроить, эта роль будет предоставлять sshd_config, соответствующий настройкам по умолчанию для ОС, за исключением комментариев и в другом порядке.
- sshd_skip_defaults
Если установлено в True, не применять значения по умолчанию. Это означает, что у вас должен быть полный набор конфигурационных значений либо через словарь sshd, либо переменные sshd_Key. По умолчанию False.
- sshd_manage_service
Если установлено в False, служба/демон не будет затронут, т.е. не будет пытаться включить при загрузке или запустить или перезагрузить службу. По умолчанию True, если не выполняется внутри контейнера Docker (предполагается, что ansible используется на этапе сборки).
- sshd_allow_reload
Если установлено в False, перезагрузка sshd не произойдет при изменении. Это может помочь при
устранении неполадок. Вам нужно будет вручную перезагрузить sshd, если вы хотите применить измененную конфигурацию. По умолчанию имеет то же значение, что и sshd_manage_service
.
- sshd_authorized_principals_file
Путь, где будут храниться файлы разрешенных пользователей. Используется только если также установлено sshd_authorized_principals
.
Может использоваться для установки вашей конфигурации sshd_AuthorizedPrincipalsFile. Пример: sshd_AuthorizedPrincipalsFile: '{{ sshd_authorized_principals_file }}'
- sshd_authorized_principals
Словарь списков, указывающий, какие пользователи могут входить под какими учетными записями. Каждой ключ в словаре - имя пользователя. Значение словаря - список учетных записей, разрешенных для входа под этим пользователем. Например:
sshd_authorized_principals:
root:
- root-everywhere
- bobby
- ryan
- sshd_trusted_user_ca_keys_file
Путь, где будет храниться файл ключей доверенного пользователя CA. Используется только если также установлено sshd_trusted_user_ca_keys
.
Может использоваться для установки вашей конфигурации sshd_TrustedUserCAKeys. Пример: sshd_TrustedUserCAKeys: '{{ sshd_trusted_user_ca_keys }}'
- sshd_trusted_user_ca_keys
Список публичных ключей CA, которым доверяют.
- sshd
Словарь, содержащий настройки. Например:
sshd:
Compression: delayed
ListenAddress:
- 0.0.0.0
- ssh_...
Можно использовать простые переменные вместо словаря. Простой значения переопределяют значения словаря. Например:
sshd_Compression: off
Во всех случаях булевы значения правильно отображаются как yes и no в конфигурации sshd. Списки могут использоваться для многострочных конфигурационных элементов. Например:
sshd_ListenAddress:
- 0.0.0.0
- '::'
Отрисовывается как:
ListenAddress 0.0.0.0
ListenAddress ::
- sshd_match
Список словарей для секции match. См. пример плейбука.
- sshd_match_1 до sshd_match_9
Список словарей или просто словарь для секции Match.
Зависимости
Отсутствуют
Пример плейбука
ОПАСНОСТЬ! Этот пример показывает диапазон конфигураций, которые предоставляет эта роль. Запуск его, скорее всего, нарушит ваш доступ по SSH к серверу!
---
- hosts: all
vars:
sshd_skip_defaults: true
sshd:
Compression: true
ListenAddress:
- "0.0.0.0"
- "::"
GSSAPIAuthentication: no
Match:
- Condition: "Group user"
GSSAPIAuthentication: yes
sshd_UsePrivilegeSeparation: no
sshd_match:
- Condition: "Group xusers"
X11Forwarding: yes
roles:
- role: willshersystems.sshd
Приведёт к:
# Управляется Ansible: ...
Compression yes
GSSAPIAuthentication no
UsePrivilegeSeparation no
Match Group user
GSSAPIAuthentication yes
Match Group xusers
X11Forwarding yes
Генерация шаблонов
Шаблон sshd_config.j2 программно создается скриптами в папке meta. Новые опции следует добавлять в options_body или options_match.
Чтобы регенерировать шаблон, выполните из директории meta/:
./make_option_list >../templates/sshd_config.j2
Лицензия
LGPLv3
Автор
Мэтт Уилшер matt@willsher.systems
© 2014,2015 Willsher Systems Ltd.
OpenSSH SSH deamon configuration
ansible-galaxy install silverlogic/ansible-sshd