sshd

OpenSSH Сервер

Статус сборки Ansible Galaxy

Эта роль настраивает демона 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.

Установить
ansible-galaxy install silverlogic/ansible-sshd
Лицензия
lgpl-3.0
Загрузки
11036
Владелец