начало /etc/ssh/sshd_config -----------------------------
# Номер порта
Port 22
# Версия протокола
Protocol 2
# Адреса, на которых слушает сервер, можно также указывать порт (server.test.ru:2022),
# но назначение ssh нестандартного порта нецелесообразно
#, т.к. заинтересует потенциальных взломщиков (.А чего это там они прячут?.)
#ListenAddress 0.0.0.0
# Разрешать ли удаленным хостам доступ к перенаправленным портам
#GatewayPorts
# Определяет разрешена ли пересылка TCP. По умолчанию разрешена.
# Запрещение не увеличивает безопасность - человек просто поставит другую программу
#AllowTcpForwarding
# Использовать сжатие (может переназначаться со стороны клиента)
#Compression yes
# Ключ сервера для протокола версии 1
HostKey /etc/ssh/ssh_host_key
# Ключи rsa и dsa для ssh версии 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
# Список алгоритмов симметричного шифрования для SSH2:
# aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour
#Ciphers
# Данные значения определяют длину ключа сервера и его время жизни для использования
# ssh версии 1 (данный ключ будет заново генерироваться через заданное время - секунды)
#KeyRegenerationInterval 3600
#ServerKeyBits 768
# Алгоритмы-проверки-целостности-данных (hmac-md5, hmac-sha1,
# hmac-ripemd160, hmac-ripemd160@openssh.com, hmac-sha1-96, hmac-md5-96)
#MACs
# Имя pid-файла (обычно переназначается в init.d)
#PidFile
# Тип сообщений на syslog: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
# LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7
SyslogFacility AUTH
# Уровень детализации в syslog: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG
LogLevel INFO
# Cписок-имен-групп-через-пробел (вход разрешен только пользователям, чья первичная
# (начиная с 2.5.1p1 и вторичная) группа входит в этот список; разрешаются ? и *)
#AllowGroups
# Cписок-имен-через-пробел (аналогично AllowGroups)
#AllowUsers
# Cписок-имен-групп-через-пробел
#DenyGroups
# Cписок-имен-через-пробел
#DenyUsers
# Проверка соответствия ip-адреса клиента и его символического имени в backzone, затем
# снова сравнение имени с ip адресом. Таким образом (извращённым) проверяется подлинность ip,
#но метод этот достаточно тормозной и по умолчанию он отключен (после определения адреса по
# имени хоста проверять, что обратная зона для этого адреса указывает на тот же самый хост)
VerifyReverseMapping no
# Число (3, число неудачных проверок до разрыва сессии)
#ClientAliveCountMax
# Максимальное число возможных соединений, где не произошло аутентификации. Если клиентов, не
# прошедших аутентификацию больше, то новые соединения не будут обрабатываться (максимальное
# число соединений, ожидающих аутентификации; алгоритм раннего предупреждения перегрузки
# - 10:30:60, отвергать соединение с вероятностью 30%, если уже есть 10 еще неаутентифицированных
# соединений, вероятность постепенно возрастает до 100% при 60 соединениях)
MaxStartups 10
# Сервер отсоединяется по происшествии данного времени в секундах, если
# клиент не проходит аутентификацию
LoginGraceTime 60
# Можно также разрешить пустые пароли, но это полный отстой, т.к. это огромная дыра на сервере,
# через которую можно наделать много гадостей! Поэтому должно быть no (по умолчанию)
PermitEmptyPasswords no
# Разрешаем заходить по ssh руту. Долгое время эта тема обсуждалась на форуме, но я думаю же, #что со внутренней сети рут может заходить и по ssh (для этого надо настроить должным образом #iptables). Также можно запретить руту входить по паролю: without-password, разрешая вход только по #публичному ключу (yes/no/without-password/forced-commands-only: without-password запрещает только #аутентификацию по паролю; при использовании RSA-аутентификации с указанием команды #исполнение этой команды разрешается в любом случае; forced-commands-only удобен для backup)
PermitRootLogin no
# Посылать клиенту сообщения о доступности (использовать механизм
# регулярных сообщений для проверки разрыва связи; по открытому каналу)
KeepAlive yes
# Секунды (0, интервал проверки не отвалился ли клиент; по шифрованному каналу)
#ClientAliveInterval
# Проверка sshd прав доступа и владельцев домашних каталогов. Полезно для тех пользователей, что #дают права всему 0777. Хотя таких болванов лучше держать на расстоянии от сервера (лучше всего это #делать бревном, подвешенным в серверной к потолку, чтобы придать нежеланному гостю должное #ускорение, и не забудьте оббить конец бревна какой-нибудь железкой, иначе брёвна придётся менять #лишком часто)
StrictModes yes
# Использовать разделение привелегий при создании дочернего процесса, который работае #входящим трафиком. Данный процесс создается после успешной аутентификации, чтобы работать с #привилегиями зарегистрированного пользователя. По умолчанию - да.
#UsePrivilegeSeparation yes
# Определяет, что ~/.ssh/environment и опция environment= в
# ~/.ssh/authorized_keys будут обработаны sshd. По умолчанию - нет.
#PermitUserEnvironment no
# Чтобы запретить посылку хешей паролей через туннель ssh задайте значение данной опции no. По #умолчанию аутентификация по паролю разрешена (разрешить аутентификацию по паролю; дается #рекомендация - закрыть)
PasswordAuthentication yes
# Аутентификация через механизм PAM (заодно разрешает аутентификацию по паролю)
#PAMAuthenticationViaKbdInt no
# Определяет, что допукается требование аутентификации ответа.
# Поддерживаются все стили аутентификации из login.conf(5).
# По умолчанию - да'.
#ChallengeResponseAuthentication yes
# Аутентификация через RSA (версия 1)
RSAAuthentication no
# Аутентификация пользователя по ключу (версия 2)
PubkeyAuthentication yes
# Определяет публичный ключ пользователя для аутентификации по ключу.
# Можно применять шаблоны: %u . имя пользователя, %h . домашний каталог пользователя
AuthorizedKeysFile .ssh/authorized_keys
# Не используем аутентификацию rhosts (разрешить аутентификацию только
# по .rhosts или /etc/hosts.equiv)
RhostsAuthentication no
# Можно также игнорировать rhosts и shosts при hostbased autentification, используя только known_hosts #файл (не использовать .rhosts и .shosts для аутентификации; /etc/hosts.equiv /etc/shosts.equiv будут #использоваться все равно)
IgnoreRhosts yes
# Используем ли аутентификацию через known_hosts совместно с .rhosts или .shosts. Опция #действительна только для протокола версии 1 разрешить аутентификацию по .rhosts и RSA #аутентификации - требует заполнения ssh_known_hosts)
RhostsRSAAuthentication no
# То же самое, что и предыдущее только для версии 2
HostbasedAuthentication no
# Если нет доверия к known_hosts, то их можно не использовать при hostbased autentification #(игнорировать ~/.ssh/known_hosts во время аутентификации rhosts+RSA)
IgnoreUserKnownHosts no
# Допускается аутентификация по Kerberos
#KerberosAuthentication no
# Если аутентификация через kerberos не прошла, то использовать /etc/passwd
#KerberosOrLocalPasswd yes
# Автоматически очищать кэш билетов-kerberos при выходе
#KerberosTicketCleanup yes
# Определяет может ли признак AFS быть переслан серверу.
#AFSTokenPassing no
# Определяет, возможна ли пересылка Kerberos TGT серверу.
#KerberosTgtPassing no
# Передача протокола иксов через туннель ssh
X11Forwarding yes
# Первый доступный номер дисплея при передаче X11
#X11DisplayOffset 10
# Используем в качестве x-сервера данный, т.е. клиент, запуская у себя X клиента будет фактически #использовать наш сервер, но все данные от сервера к клиенту будут шифроваться, что есть хорошо!
#X11UseLocalhost yes
# Определяет полный путь до программы авторизации xauth(1)
#XAuthLocation
# Использовать login для интерактивных сессий; для выполнения удаленных
# команд не используется в любом случае
UseLogin yes
# Сообщаем пользователю время и место последнего логина, ситуация,
# аналогичная предыдущей
PrintLastLog yes
# При логине пользователя выводим /etc/motd: в некоторых системах это
# отменено в целях безопасности
PrintMotd yes
# Путь к файлу, который будет отображаться при входе клиента ДО
# аутентификации
Banner /etc/ssh/ssh_message
# Новые системы, работающие через ssh. В данном примере определяется .безопасный. ftp сервер . sftp, аналогичный доступ пользователя, но с возможностью передачи файлов (т.е. пользователь получает доступ ко всем своим файлам и нет возможности настройки разрешений и виртуальных пользователей, #как, например в proftpd). По сути дела, подсистемы ssh могут обеспечивать прохождение других протоколов по сети, но под .крылышком. ssh. Например, для sftp-сервера есть одноимённый sftp-клиент. Его интерфейс полностью идентичен оригинальному ftp, но с одним отличием: происходит та же самая аутентификация пользователя на удалённом сервере (методами ssh), но вместо оболочки с пользователем взаимодействует подсистема, в данном случае sftp.
Subsystem sftp /usr/libexec/openssh/sftp-server
-------------- конец /etc/ssh/sshd_config ------------------------------