изучаем и настраиваем ssh аутентификацию по открытому ключу

Configuration

You may configure the default behavior of the OpenSSH server application, sshd, by editing the file /etc/ssh/sshd_config. For information about the configuration directives used in this file, you may view the appropriate manual page with the following command, issued at a terminal prompt:

man sshd_config

There are many directives in the sshd configuration file controlling such things as communication settings, and authentication modes. The following are examples of configuration directives that can be changed by editing the /etc/ssh/sshd_config file.

Tip

Prior to editing the configuration file, you should make a copy of the original file and protect it from writing so you will have the original settings as a reference and to reuse as necessary.

Copy the /etc/ssh/sshd_config file and protect it from writing with the following commands, issued at a terminal prompt:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
sudo chmod a-w /etc/ssh/sshd_config.original

Furthermore since losing an ssh server might mean losing your way to reach a server, check the configuration after changing it and before restarting the server:

sudo sshd -t -f /etc/ssh/sshd_config

The following are examples of configuration directives you may change:

  • To set your OpenSSH to listen on TCP port 2222 instead of the default TCP port 22, change the Port directive as such:

Port 2222

  • To make your OpenSSH server display the contents of the /etc/issue.net file as a pre-login banner, simply add or modify this line in the /etc/ssh/sshd_config file:

Banner /etc/issue.net

After making changes to the /etc/ssh/sshd_config file, save the file, and restart the sshd server application to effect the changes using the following command at a terminal prompt:

sudo systemctl restart sshd.service

Warning

Many other configuration directives for sshd are available to change the server application’s behavior to fit your needs. Be advised, however, if your only method of access to a server is ssh, and you make a mistake in configuring sshd via the /etc/ssh/sshd_config file, you may find you are locked out of the server upon restarting it. Additionally, if an incorrect configuration directive is supplied, the sshd server may refuse to start, so be extra careful when editing this file on a remote server.

Настройка ssh

При изменении конфигурации SSH вы меняете настройки сервера sshd.

В Ubuntu основной файл конфигурации sshd находится в каталоге /etc/ssh/sshd_config.

Выполните резервное копирование текущей версии этого файла перед началом редактирования:

  1. sudocp /etc/ssh/sshd_config{,.bak}

Откройте файл в текстовом редакторе:

  1. sudonano /etc/ssh/sshd_config

Скорее всего, вы захотите оставить большинство опций в этом файле без изменений. Однако существует несколько настроек, на которые вам стоит обратить особое внимание:

Port 22

Объявление порта указывает, подключения к какому порту будет отслеживать сервер sshd. По умолчанию используется порт 22. Вам, скорее всего, не придется изменять данную настройку, если только у вас нет конкретных причин для иного решения.

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

В объявлениях ключей хоста указывается, где нужно искать глобальные ключи хоста. Мы обсудим, что такое ключ хоста, позже.

SyslogFacility AUTH
LogLevel INFO

Эти две строки указывают на уровень логирования, который необходимо использовать.

Если вы сталкиваетесь с проблемами при работе с SSH, увеличение объема логируемых данных может быть хорошим решением, которое поможет понять, в чем заключается проблема.

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Эти параметры определяют некоторые данные для входа в систему.

Опция LoginGraceTime определяет количество секунд, в течение которых следует сохранять подключение при отсутствии успешных попыток входа в систему.

Возможно, вам может быть полезным задать для этого параметра чуть большее количество времени, чем то, которое вам обычно требуется для входа.

PermitRootLogin определяет, разрешен ли вход с помощью пользователя с правами root.

В большинстве случаев необходимо изменить значение на no, если вы создали учетную запись пользователя, которая имеет доступ к высокому уровню привилегий (через su или sudo) и может использоваться для входа в систему через ssh.

strictModes — это защитник, который будет препятствовать попыткам входа, если файлы аутентификации доступны для чтения всем.

Он позволяет предотвратить попытки входа в систему, когда файлы конфигурации не находятся в безопасном состоянии.

X11Forwarding yes
X11DisplayOffset 10

Эти параметры используются для настройки такой возможности, как X11 Forwarding. X11 Forwarding позволяет просматривать графический пользовательский интерфейс (GUI) удаленной системы на локальной системе.

Эта функция должна быть активирована на сервере и передана клиенту SSH во время подключения с помощью опции -X.

После внесения изменений сохраните и закройте файл, введя CTRL X, Y, а затем нажмите ENTER.

Если вы внесли изменения в какие-либо настройки в файле /etc/ssh/sshd_config, необходимо перезапустить ваш сервер sshd, чтобы изменения вступили в силу:

  1. sudo systemctl reload ssh

Вы должны тщательно протестировать ваши изменения, чтобы убедиться, что все работает так, как вы ожидаете.

Вы можете использовать несколько активных сеансов во время внесения изменений. Это позволит вам вернуться к первоначальной конфигурации, если это потребуется.

Настройка сервера

При установке SSH-сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд:

sudo service ssh stop|start|restart 

Основной файл конфигурации SSH-сервера — файл /etc/ssh/sshd_config, доступный для чтения или редактирования только суперпользователю.
После каждого изменения этого файла необходимо перезапустить ssh-сервер для применения таких изменений.

Пример конфигурации SSH-сервера в Ubuntu по умолчанию2):

#     Пример конфигурации open-ssh сервера с русскими      #
#                      комментариями.                      #
#           Написан для http://help.ubuntu.ru              #
#                   by MadKox, 01.2022.                    #
#                                                          #
#                                                          #
# Условные обозначения:                                    #
# Под "по умолчанию" - подразумевается поведение sshd при  #
# неуказанной явно директиве. Стоит заметить, что в Ubuntu # 
# файл sshd_config уже содержит ряд настроек, которые      #
# являются настройками по умолчанию для именно для Ubuntu. #
# Такие настройки указаны в этом файле.                    #
#                                                          #
############################################################
################ Настройки адресов/портов и т.д. ###########
############################################################
#                                                          #
## Port ####################################################
#                                                          #
# Используемый порт. Можно указывать несколько, например:  #
# Port 22                                                  #
# Port 23                                                  #
# Port 24                                                  #
# Рекомендуется использовать нестандартный порт, т.к.      #
# стандартный часто сканируется ботами на предмет          #
# потенциальных "дырок". Может быть опущен, если задан     #
# через адрес. См. также параметр ListenAddress.           #
#                                                          #
Port 22
#                                                          #
## ListenAddress ###########################################
#                                                          #
# Сетевой адрес, на котором "слушает" сервер. Адрес можно  #
# записывать так:                                          #
# ListenAddress host|IPv4_addr|IPv6_addr                   #
# ListenAddress host|IPv4_addr:port                        #
# ListenAddress [host|IPv6_addr]:port                      #
# Если порт не задан, sshd будет слушать на этом адресе и  #
# на порту, указанному в опции Port. Если вы будете        # 
# использовать ListenAddress не указывая порт, то опция    #
# Port должна предшествовать опции ListenAddress. Если не  #
# указывать, то по умолчанию слушает на всех локальных     #
# адресах. Можно указывать несколько адресов.              #
#                                                          #
## AddressFamily ###########################################
#                                                          #
# Указывает, какое семейство IP адресов должно быть        #
# использовано sshd. Возможные варианты:                   #
# “any” - любые                                            #
# “inet” (только IPv4)                                     #
# “inet6” (только IPv6)                                    #
# По умолчанию - “any”.                                    #
AddressFamily inet
#                                                          #
## UseDNS ##################################################
#                                                          #
# Указывает, должен ли sshd проверять имя хоста и          #
# используя это имя сверять IP адрес переданный клиентом с #
# полученным от DNS.                                       #
# Значение по умолчанию - “yes”.                           #
#                                                          #
############################################################
############# Настройки доступа пользователей ##############
############################################################
#                                                          #
# Пустить/не пустить пользователя определяется директивами #
# DenyUsers, AllowUsers, DenyGroups, и AllowGroups.        #
# при этом, проверка проходит сверху - вниз по цепочке:    #
#                   ## DenyUsers ##                        #
#                          ||                              #
#                   ## AllowUsers ##                       #
#                          ||                              #
#                   ## DenyGroups ##                       #
#                          ||                              #
#                   ## AllowGroups ##                      #
# Принимаются только имена пользователей и групп, числовые #
# идентификаторы (UserID) - не распознаются. Корректная    #
# запись нескольких пользователей/групп по очереди, через  #
# пробел. Если записано в виде пользователь@хост - то      #
# пользователь и хост проверяются отдельно, это позволяет  #
# разграничить доступ определенных пользователей с         #
# определенных хостов. Стоит помнить, что директивы        #
# DenyUsers и AllowUsers принимают в качестве параметра    #
# имя пользователя, а DenyGroups и AllowGroups - имя       #
# группы. См. PATTERNS в man ssh_config для дополнительной #
# информации о формах записи имен пользователей и групп.   #
#                                                          #
## DenyUsers ###############################################
#                                                          #
# Список ПОЛЬЗОВАТЕЛЕЙ, которым НЕЛЬЗЯ пользоваться sshd.  #
# По умолчанию - не указан = не запрещен никто. Т.е. если  #
# тут указан пользователь, то ему будет отказано в доступе #
# к ssh серверу.                                           #
#                                                          #
## AllowUsers ##############################################
#                                                          #
# Список ПОЛЬЗОВАТЕЛЕЙ, которым МОЖНО пользоваться sshd,   # 
# По умолчанию - не указан = разрешено всем. Т.е. если     # 
# указан хотя бы один пользователь, ssh доступ к серверу   #
# доступен только для него.                                #
#                                                          #
## DenyGroups ##############################################
#                                                          #
# Список ГРУПП, которым НЕЛЬЗЯ пользоваться sshd.          #
# По умолчанию - не указан = не запрещена ни одна группа.  #
# Т.е. если указана хотя бы одна группа, то пользователям, #
# входящим в эту группу будет отказано в доступе к ssh     #
# серверу.                                                 #
#                                                          #
## AllowGroups #############################################
#                                                          #
# Список ГРУПП, которым МОЖНО пользоваться sshd.           #
# По умолчанию - не указан = разрешено всем. Т.е. если     #
# указана хотя бы одна группа, то только тем пользователям,#
# которые в нее входят будет разрешен доступ к ssh серверу.#
#                                                          #
############################################################
######### Опции определения состояния соединения ###########
############################################################
#                                                          #
## TCPKeepAlive ############################################
#                                                          #
# Указывает, нужно системе посылать TCP сообщения клиенту  #
# с целью поддержания соединения. Если посылать эти пакеты,#
# можно определить разрыв соединения. Однако это также     #
# означает, что соединение может быть разорвано в случае   #
# кратковременного перебоя в работе маршрутизации и        #
# некоторых это сильно раздражает. С другой стороны, если  #
# таких сообщений не посылать - сеансы на сервере могут    #
# длиться бесконечно, порождая пользователей - "призраков",#
# и пожирая ресурсы сервера. Значение по умолчанию - “yes”,#
# т.е. посылать такие сообщения. Для отключения отправки   #
# таких сообщений нужно задать значение “no”. Ранее эта    #
# опция называлась KeepAlive. Стоит заметить, что          #
# существуют более защищенные способы проверки состояния   #
# соединения (см. ниже).                                   #
#                                                          #
TCPKeepAlive yes
#                                                          #
## ClientAliveCountMax #####################################
#                                                          #
# Задает количество сообщений к клиентам, которые sshd     #
# посылает подряд, не получая какого либо ответа от        #
# клиента. Если пороговое значение будет достигнуто, а     #
# клиент так и не ответил - sshd отключит клиента, прервав #
# ssh сессию. Стоит отметить, что использование таких      #
# сообщений в корне отличается от директивы TCPKeepAlive.  #
# Сообщения к/от клиентов посылаются по зашифрованному     #
# каналу и поэтому не подвержены спуфингу. Сообщения же    #
# TCPKeepAlive спуфингу подвержены. Механизм client alive  #
# особо ценен в тех случаях, когда серверу и клиенту нужно #
# знать когда соединение стало неактивным. По умолчанию    #
# значение равно 3. В случае, если ClientAliveInterval     #
# задан равным 15 и ClientAliveCountMax оставлен по        #
# умолчанию, неотвечающие клиенты будут отключены примерно #
# через 45 секунд. Эта директива работает только для       #
# протокола ssh2.                                          #
#                                                          #
## ClientAliveInterval #####################################
#                                                          #
# Задает временной интервал в секундах. Если в течении     #
# этого интервала не было обмена данными с клиентом, sshd  #
# посылает сообщение по зашифрованному каналу,             #
# запрашивающее ответ от клиента. По умолчанию - 0, т.е.   #
# не посылать таких сообщений. Эта директива работает      #
# только для протокола ssh2.                               #
#                                                          #
############################################################
################ Общие опции аутентификации ################
############################################################
#                                                          #
## AuthorizedKeysFile ######################################
#                                                          #
# Указывает файл, в котором содержатся публичные ключи,    #
# используемые для аутентификации пользователей. Директива #
# может содержать маркеры вида %М, которые подставляются в #
# процессе установки соединения.                           #
# Определены следующие маркеры:                            #
# %% - заменяется литералом '%'                            #
# %h - заменяется домашней директорией                     #
# аутентифицируещегося пользователя                        #
# %u - заменяется именем аутентифицируещегося пользователя #
# Таким образом, файл с ключами может быть задан как       #
# абсолютным путем (т.е. один общий файл с ключами), так и #
# динамически - в зависимости от пользователя (т.е. по     #
# файлу на каждого пользователя).                          #
# По умолчанию - “.ssh/authorized_keys”.                   #
# Пример для файла ключа в домашней папке пользователя:    # 
# AuthorizedKeysFile %h/.ssh/authorized_key                #
# Пример для общего файла:                                 #
# AuthorizedKeysFile /etc/ssh/authorized_keys              #
# См. описание файла authorized_keys для большей           #
# информации.                                              #
#                                                          #
## ChallengeResponseAuthentication #########################
#                                                          #
# Указывает, разрешить ли аутентификацию вида вопрос-ответ #
# (challenge-response authentication). Поддерживаются все  #
# виды аутентификации из login.conf По умолчанию - “yes”,  #
# т.е. разрешить.                                          #
# В Ubuntu - выключена по соображениям безопасности.       #
#                                                          #
ChallengeResponseAuthentication no
#                                                          #
## HostbasedUsesNameFromPacketOnly #########################
#                                                          #
# Указывает, как сервер должен получать имя хоста клиента  #
# при схеме аутентификации, основанной на проверке хоста.  #
# Если задать "yes" - при проверке соответствия в файлах   #
# ~/.shosts, ~/.rhosts или /etc/hosts.equiv sshd будет     #
# использовать имя хоста, предоставленное клиентом.        #
# (выполняя реверсивное DNS распознование) Если задать "no"#
# - sshd будет ресолвить имя из самого TCP соединения.     # 
# По умолчанию - "no".                                     #
#                                                          #
## IgnoreRhosts ############################################
#                                                          #
# Запрещает использование файлов .rhosts и .shosts         #
# в процессе аутентификации, основанной на проверке хоста. #
# (RhostsRSAAuthentication или HostbasedAuthentication).   #
# Файлы /etc/hosts.equiv и /etc/ssh/shosts.equiv все еще   #
# используются.                                            #
# По умолчанию - “yes”.                                    #
#                                                          #
IgnoreRhosts yes
#                                                          #
## IgnoreUserKnownHosts ####################################
#                                                          #
# Указывает должен ли sshd игнорировать пользовательские   # 
# "известные хосты" - файл ~/.ssh/known_hosts в процессе   #
# аутентификации, основанной на проверке хоста             # 
# (RhostsRSAAuthentication или HostbasedAuthentication).   #
# По умолчанию - “no”.                                     #
#                                                          #
## PermitBlacklistedKeys ###################################
#                                                          #
# Указывает, стоит ли sshd принимать ключи, занесенные в   #
# черный список как скомпрометированные (known-compromised #
# keys (см. ssh-vulnkey)). Если задано значение “yes” -    #
# попытки аутентификации с такими ключами будут занесены в #
# журнал и приняты, если значение “no” - попытки           #
# аутентификации будут отвергнуты.                         #
# По умолчанию - “no”.                                     #
#                                                          #
## PermitEmptyPasswords ####################################
#                                                          #
# В случае разрешенной аутентификации с помощью пароля,    #
# указывает, возможен ли вход с пустым паролем.            #
# По умолчанию - “no”.                                     #
#                                                          #
PermitEmptyPasswords no
#                                                          #
## PermitRootLogin #########################################
#                                                          #
# Указывает, возможен ли ssh-вход под суперпользователем   #
# (root). Может принимать значения:                        #
# “yes” - суперпользователь может зайти. Применяется       #
# текущая глобальная схема аутентификации.                 #
#                                                          #
# “without-password” - суперпользователь может зайти.      #
# Парольная аутентификация для него будет отключена.       #
#                                                          #
# “forced-commands-only” - суперпользователь сможет зайти, #
# пользуясь аутентификацией на основе публичного ключа и   #
# только если передаст необходимую к исполнению комнаду.   #
# Это удобно для осуществления резервного копирования,     #
# даже в том случае, когда нормальный (т.е. не через ssh)  #
# вход суперпользователя запрещен. Все остальные методы    #
# аутентификации для суперпользователя будут заблокированы.#
#                                                          #
# “no” - суперпользователь не может использовать ssh для   #
# входа в систему.                                         #
#                                                          #
# Значение по умолчанию - “yes”.                           #
#                                                          #
PermitRootLogin yes
#                                                          #
## Protocol ################################################
#                                                          #
# Указывает, какой протокол должен использовать sshd.      #
# Возможные значения ‘1’ и ‘2’ - ssh1 и ssh2               #
# соответственно. Возможна одновременная запись, при       #
# которой значения следует разделять запятыми.             #
# По умолчанию - “2,1”.                                    #
# Стоит отметить, что порядок следования протоколов в      #
# записи не задает приоритет, т.к. клиент выбирает какой   #
# из нескольких предложенных сервером протоколов ему       #
# использовать.Запись "2,1" абсолютно идентична            #
# записи "1,2".                                            #
#                                                          #
Protocol 2
#                                                          #
## UsePAM ##################################################
#                                                          #
# Включает интерфейс PAM (Pluggable Authentication Module  #
# interface).Если задано значение "yes" - для всех типов   #
# аутентификации помимо обработки модуля сессии и аккаунта #
# PAM будет использоваться аутентификация на основе        #
# запроса-ответа (ChallengeResponseAuthentication и        #
# PasswordAuthentication) Т.к. аутентификация              #
# запросов-ответов в PAM обычно выполняет ту же роль,      #
# что и парольная аутентификация, вам следует отключить    #
# либо PasswordAuthentication, либо                        #
# ChallengeResponseAuthentication. Стоит отметить, что     #
# если директива UsePAM включена - вы не сможете запустить #
# sshd от имени пользователя, отличного от root.           #
# Значение по умолчанию - “no”.                            #
#                                                          #
UsePAM yes
#                                                          #
## PasswordAuthentication ##################################
#                                                          #
# Указывает, разрешена ли аутентификация с использованием  #
# пароля.                                                  #
# По умолчанию - “yes”.                                    #
#                                                          #
## HostKey #################################################
#                                                          #
# Указывает файл, содержащий закрытый хост-ключ,           #
# используемый SSH. По умолчанию - /etc/ssh/ssh_host_key   #
# для протокола ssh1 и /etc/ssh/ssh_host_rsa_key и         #
# /etc/ssh/ssh_host_dsa_key для протокола ssh2. Стоит      #
# отметить, что sshd не станет пользоваться файлом,        #
# который доступен кому либо, кроме пользователя. Можно    #
# использовать несколько файлов с ключами, ключи “rsa1” -  #
# для протокола ssh1 и “dsa”/“rsa” для протокола ssh2.     #
#                                                          #
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#                                                          #
############################################################
########## Опции протокола SSH версии 1 (ssh1) #############
############################################################
# Настоятельно НЕ РЕКОМЕНДУЕТСЯ использовать протокол ssh1.#
# Протокол ssh2 намного более безопасен, чем ssh1          #
############################################################
#                                                          # 
## KeyRegenerationInterval #################################
#                                                          #
# Для протокола ssh1 - раз в определенное время            #
# автоматически генерируется новый временный ключ сервера  #
# (если он был использован). Это сделано для               #
# предотвращения расшифровки перехваченных сеансов,с целью #
# позже зайти с параметрами этих сеансов на машину и       #
# украсть ключи. Такой ключ нигде не хранится (хранится в  #
# оперативной памяти). Данная директива указывает период   #
# "жизни" ключа в секундах, после которого он будет        #
# сгенерирован заново. Если значение задать равным 0 -     #
# ключ не будет генерироваться заново.                     #
# По умолчанию значение - 3600 (секунд).                   #
#                                                          #
KeyRegenerationInterval 3600
#                                                          #
## RhostsRSAAuthentication #################################
#                                                          #
# Указывает, нужна ли аутентификация на основе файлов      #
# rhosts или /etc/hosts.equiv совместно с успешной         #
# аутентификацией хоста через RSA.                         #
# Актуально только для протокола ssh1.                     #
# По умолчанию - “no”.                                     #
#                                                          #
RhostsRSAAuthentication no
#                                                          #
## RSAAuthentication #######################################
#                                                          #
# Указывает, разрешена ли "чистая" RSA-аутентификация.     #
# Актуально только для протокола ssh1.                     #
# По умолчанию - “yes”.                                    #
#                                                          #
RSAAuthentication yes
#                                                          #
## ServerKeyBits ###########################################
#                                                          #
# Определяет число бит во временном ключе сервера для      #
# протокола ssh1. Минимальное значение 512.                #
# Значение по умолчанию - 1024.                            #
ServerKeyBits 768
#                                                          #
############################################################
########### Опции протокола SSH версии 2 (ssh2) ############
############################################################
#                                                          #
## Ciphers #################################################
#                                                          #
# Указывает алгоритмы шифрования, разрешенные для          #
# протокола ssh2. Несколько алгоритмов должны быть         #
# разделены запятыми. Поддерживаемые алгоритмы:            #
# “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”,    #
# “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “arcfour128”,  #
# “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”.  #
# По умолчанию используются:                               #
# aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, #
# arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,     #
# aes192-ctr,aes256-ctr                                    #
#                                                          #
## HostbasedAuthentication #################################
#                                                          #
# Указывает, разрешена ли аутентификация, основанная на    #
# проверке хоста. Проверяется rhosts или /etc/hosts.equiv, #
# и в случае успеха, совместного с успешной проверкой      #
# публичного ключа, доступ разрешается. Данная директива   #
# одинакова с директивой RhostsRSAAuthentication и         #
# подходит только для протокола ssh2.                      #
# По умолчанию - "no".                                     #
#                                                          #
HostbasedAuthentication no
#                                                          #
## MACs ####################################################
#                                                          #
# Указывает допустимый алгоритм MAC (message               #
# authentication code). Алгоритм MAC используется          #
# протоколом ssh2 для защиты целостности данных. Несколько #
# алгоритмов должны быть разделены запятыми.               #
# По умолчанию используются:                               #
# hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,   #
# hmac-sha1-96,hmac-md5-96                                 #
#                                                          #
## PubkeyAuthentication ####################################
#                                                          #
# Указывает, разрешена ли аутентификация на основе         #
# публичного ключа. Актуально только для протокола ssh2.   #
# По умолчанию - “yes”.                                    #
#                                                          #
PubkeyAuthentication yes
############################################################
#################### Опции GSSAPI ##########################
############################################################
#                                                          #
############ Применимо только для протокола ssh2 ###########
#                                                          #
## GSSAPIAuthentication ####################################
#                                                          #
# Указывает, разрешена ли аутентификация пользователя на   #
# основе GSSAPI. По умолчанию - "no", т.е. запрещена.      #
#                                                          #
## GSSAPIKeyExchange #######################################
#                                                          #
# Указывает, разрешен ли обмен ключами, основанный на      #
# GSSAPI. Обмен ключам при помощи GSSAPI не полагается на  #
# ssh ключи при верификации идентичности хоста.            #
# По умолчанию - "no" - т.е. обмен запрещен.               #
#                                                          #
## GSSAPICleanupCredentials ################################
#                                                          #
# Указывает, нужно ли автоматически уничтожать             #
# пользовательский кеш аутентификационных полномочий при   #
# завершении сеанса.                                       #
# По умолчанию - "yes" - т.е. нужно уничтожать.            #
#                                                          #
## GSSAPIStrictAcceptorCheck ###############################
#                                                          #
# Указывает, насколько строгой должна быть проверка        #
# идентичности клиента при аутентификации через GSSAPI.    #
# Значение "yes" заставляет клиента аутентифицироваться в  #
# принимающей хост-службе на текущем хосте. Значение "no"  #
# позволяет клиенту аутентифицироваться при помощи любого  #
# ключа служб.                                             #
# Значение по умолчанию - "yes".                           #
# Стоит заметить, что задание значения "no" может          #
# сработать только с редкими библиотеками Kerberos GSSAPI. #
#                                                          #
############################################################
################### Опции Kerberos #########################
############################################################
#                                                          #
## KerberosAuthentication ##################################
#                                                          #
# Указывает, требует ли пароль, предоставленный            #
# пользователем для аутентификации                         #
# (PasswordAuthentication) валидации в Kerberos KDC.       #
# Для использования этой опции серверу нужно               #
# удостовериться в истинности KDC. (Тhe server needs a     #
# Kerberos servtab which allows the verification of the    #
# KDC’s identity)                                          #
# По умолчанию - “no”.                                     #
#                                                          #
## KerberosGetAFSToken #####################################
#                                                          #
# Если активен AFS и пользователь получил Kerberos 5 TGT,  #
# пытаться ли получить AFS токен до того, как пользователь #
# получит доступ к своей домашней папке.                   #
# По умолчанию - “no”.                                     #
#                                                          #
## KerberosOrLocalPasswd ###################################
#                                                          #
# Указывает, как поступать в случае, если аутентификация   #
# через Kerberos завершилась неудачей. Если                #
# значение = "yes" - пароль будет проверен при помощи      #
# любого дополнительного локального механизма авторизации, #
# например - /etc/passwd.                                  #
# По умолчанию - “yes”.                                    #
#                                                          #
## KerberosTicketCleanup ###################################
#                                                          #
# Указывает, нужно ли автоматически уничтожать файл с      #
# кешем тикета пользователя по завершению сеанса.          #
# По умолчанию - “yes”.                                    #
#                                                          #
############################################################
################# Опции перенаправления ####################
############################################################
#                                                          #
## AllowAgentForwarding ####################################
#                                                          #
# Указывает, разрешить или запретить перенаправление       #
# ssh-agent'а. По умолчанию - “yes”, т.е. разрешить.       #
# Стоит заметить, что отключение перенаправления не        #
# увеличит безопасности пока пользователям также не будет  #
# запрещен shell доступ, т.к. они всегда смогут установить #
# свои собственные аналоги агента.                         #
#                                                          #
## AllowTcpForwarding ######################################
#                                                          #
# Указывает, разрешить или запретить перенаправление TCP.  #
# По умолчанию - “yes”, т.е. разрешить. Стоит заметить,    #
# что как и в случае с AllowAgentForwarding отключение     #
# перенаправления не увеличит безопасности, пока у         #
# пользователей будет консольный доступ, т.к. они смогут   #
# установить свои аналоги.                                 #
#                                                          #
#                                                          #
## GatewayPorts ############################################
#                                                          #
# Указывает, разрешать ли удаленным хостам доступ к        #
# перенаправленным портам. По умолчанию, sshd слушает      #
# соединения к перенаправленным портам только на локальном #
# интерфейсе (loopback). Это не дает другим удаленным      #
# хостам подсоединяться к перенаправленным портам. Можно   #
# использовать GatewayPorts, чтобы разрешить sshd это      #
# делать. Директива может принимать 3 значения:            #
# "no" - только loopback.                                  #
# "yes"- любые адреса.                                     #
# "clientspecified" - адреса указанные клиентом.           #
#                                                          #
## PermitOpen ##############################################
#                                                          #
# Указывает куда разрешено перенаправление TCP портов.     #
# Указание перенаправления должно принимать одну из        #
# следующих форм:                                          #
# PermitOpen host:port                                     #
# PermitOpen IPv4_addr:port                                #
# PermitOpen [IPv6_addr]:port                              #
# Несколько записей можно задать, разделяя их пробелами.   #
# Аргумент “any” можно использовать для снятия всех        #
# запретов на перенаправление портов. По умолчанию любое   #
# перенаправление разрешено.                               #
#                                                          #
## PermitTunnel ############################################
#                                                          #
# Указывает, разрешено ли перенаправление tun-устройств.   #
# Может принимать значения:                                #
# “yes”                                                    #
# “point-to-point” (3-й сетевой уровень)                   #
# “ethernet” (2-й сетевой уровень)                         #
# “no”                                                     #
# Значение “yes” разрешает одновременно и “point-to-point” #
# и “ethernet”. По умолчанию - “no”.                       #
#                                                          #
############################################################
################## Опции журналирования ####################
############################################################
#                                                          #
## SyslogFacility ##########################################
#                                                          #
# Задает код объекта журнала для записи сообщений в        #
# системный журнал от sshd. Возможные значения:            #
# DAEMON                                                   #
# USER                                                     #
# AUTH                                                     #
# LOCAL0                                                   #
# LOCAL1                                                   #  
# LOCAL2                                                   #
# LOCAL3                                                   #
# LOCAL4                                                   #
# LOCAL5                                                   #
# LOCAL6                                                   #
# LOCAL7                                                   #
# По умолчанию используется AUTH.                          #
#                                                          #
SyslogFacility AUTH
#                                                          #
## LogLevel ################################################
#                                                          #
# Задает уровень детальности журнала sshd.                 #
# Возможные варианты:                                      #
# SILENT                                                   #
# QUIET                                                    #
# FATAL                                                    #
# ERROR                                                    #
# INFO                                                     #
# VERBOSE                                                  #
# DEBUG                                                    #
# DEBUG1                                                   #
# DEBUG2                                                   #
# DEBUG3                                                   # 
# По умолчанию - INFO.                                     # 
# DEBUG и DEBUG1 эквивалентны друг другу.                  #
# DEBUG2 и DEBUG3 задают самые высокие уровни отладочного  #
# вывода. Запись логов с уровнем DEBUG угрожает            #
# приватности пользователей и не рекомендована.            #
#                                                          #
LogLevel INFO
#                                                          #
############################################################
################### Перенаправление X11 ####################
############################################################
#                                                          #
## X11Forwarding ###########################################
#                                                          #
# Указывает, разрешено ли перенаправление графической      #
# подсистемы X11. Может принимать значения “yes” или “no”. #
# По умолчанию - “no”.                                     # 
# Внимание - включение простого перенаправления Х11 -      #
# большой риск как для сервера, так и для клиентов, т.к. в #
# случае такого перенаправления прокси-дисплей sshd        #
# принимает соединения с любых адресов. Используйте        #
# директиву X11UseLocalhost для ограничения доступа к      #
# серверу перенаправления "иксов". Стоит отметить, что     #
# отключение перенаправления не даст гарантии, что         #
# пользователи не смогут перенаправлять Х11, т.к. имея     #
# консольный доступ они всегда установить свой             #
# перенаправлятель. Перенаправление Х11 будет              #
# автоматически отключено, если будет задействована        #
# директива UseLogin.                                      #
#                                                          #
X11Forwarding yes
#                                                          #
## X11UseLocalhost #########################################
#                                                          #
# Указывает, должен ли sshd ограничить область             #
# перенаправления Х11 локальным loopback адресом, или      #
# должен разрешить любые адреса. По умолчанию - sshd       #
# "сажает" сервер перенаправления Х11 на локальный адрес   #
# и задает часть переменной окружения DISPLAY, отвечающую  #
# за имя хоста как “localhost”. Стоит заметить, что        #
# некоторые старые клиенты Х11 могут не работать с такими  #
# настройками. По умолчанию - "yes", т.е. перенаправление  #
# ограничено локалхостом, значение - “no” - отключает      #
# ограничения.                                             #
#                                                          #
## XAuthLocation ###########################################
#                                                          #
# Указывает полный путь к программе xauth.                 #
# По умолчанию - /usr/bin/X11/xauth.                       #
#                                                          #
## X11DisplayOffset ########################################
#                                                          #
# Указывает номер первого дисплея, доступного sshd в       #
# качестве перенаправления X11. Это сделано для того,      #
# чтобы перенаправленные "иксы" не пересекались с          # 
# реальными. По умолчанию - 10.                            #
#                                                          #
X11DisplayOffset 10
#                                                          #
############################################################
################### Различные опции ########################
############################################################
#                                                          #
## LoginGraceTime ##########################################
#                                                          #
# Время, по прошествии которого сервер отключает           #
# пользователя, если тот не смог удовлетворительно         #
# залогиниться. Значение 0 - разрешает пользователю        #
# логиниться бесконечно. По умолчанию - 120 (секунд).      #
#                                                          #
LoginGraceTime 120
#                                                          #
## MaxAuthTries ############################################
#                                                          #
# Указывает максимальное число попыток аутентификации,     #
# разрешенное для одного соединения.                       #
# Как только число неудачных попыток превысит половину     #
# заданного значения, все последующие попытки будут        #
# заноситься в журнал. Значение по умолчанию - 6.          #
#                                                          #
## MaxSessions #############################################
#                                                          #
# Указывает максимальное число одновременных подключений   #
# для каждого сетевого соединения. По умолчанию - 10.      #
#                                                          #
## MaxStartups #############################################
#                                                          #
# Указывает максимальное число одновременных               #
# неавторизованных подключений к sshd. В случае, если      #
# число подключений превысит лимит - все дополнительные    #
# подключения будут сброшены до тех пор, пока текущие      #
# подключения не завершатся либо успешной авторизацией,    #
# либо истечением периода времени указанного в директиве   #
# LoginGraceTime. Значение по умолчанию - 10.              #
# Дополнительно, можно задать ранний сброс соединений,     #
# указав в качестве параметра три значения, разделенные    #
# двоеточием “start:rate:full” (например: "10:30:60").     #
# sshd отклонит попытку соединения с вероятностью равной   #
# “rate/100” (т.е. в нашем примере - 30%), если уже        #
# имеется “start” (10) неавторизованных соединений.        #
# Вероятность увеличивается линейно и любые попытки        #
# соединения будут отклонены, если число неавторизованных  #
# соединений достигнет значения “full” (60).               #
#                                                          #
## Compression #############################################
#                                                          #
# Указывает, разрешено ли сжатие данных. Может быть        #
# "yes" - сжатие разрешено.                                #
# "delayed" - сжатие отложено до тех пор, пока             #
# пользователь успешно не аутентифицируется.               #
# "no" - сжатие запрещено.                                 #
# По умолчанию - "delayed".                                #
#                                                          #
## UseLogin ################################################
#                                                          #
# Указывает, должен ли использоваться login для            #
# интерактивного сеанса. Значение по умолчанию - “no”.     #
# Стоит отметить, что login никогда не использовался для   #
# выполнения удаленных команд. Так же заметим, что         #
# использование login сделает невозможным использование    #
# директивы X11Forwarding, потому что login не знает, что  #
# ему делать с xauth. Если включена директива              #
# UsePrivilegeSeparation - она будет отключена после       #
# авторизации.                                             #
#                                                          #
## UsePrivilegeSeparation ##################################
#                                                          #
# Указывает, должен ли sshd разделять привилегии. Если да  #
# - то сначала будет создан непривилегированный дочерний   #
# процесс для входящего сетевого трафика. После успешной   #
# авторизации будет создан другой процесс с привилегиями   #
# вошедшего пользователя. Основная цель разделения         #
# привилегий - предотвращение превышения прав доступа.     #
# Значение по умолчанию - “yes”.                           #
#                                                          #
UsePrivilegeSeparation yes
#                                                          #
## StrictModes #############################################
#                                                          #
# Указывает должен ли sshd проверить режимы доступа и      #
# владения пользовательских папок и файлов перед тем, как  #
# дать пользователю войти. Обычно это объясняется тем, что #
# новички часто делают свои файлы доступными для записи    #
# всем подряд.По умолчанию - “yes”.                        #
#                                                          #
StrictModes yes
#                                                          #
## AcceptEnv ###############################################
#                                                          #
# Указывает, какие переменные окружения, переданные        #
# клиентом будут приняты. См. опцию SendEnv в клиенте.     #
# Стоит заметить, что передача переменных возможна только  #
# для протокола ssh2. Переменные указываются по имени,     #
# можно использовать маски (‘*’ и ‘?’). Можно указывать    #
# несколько переменных через пробел, или разбить на        #
# несколько строк AcceptEnv. Будьте осторожны - некоторые  #
# переменные окружения могут быть использованы для обхода  #
# запрещенных пользовательских окружений. Пользуйтесь этой #
# директивой аккуратно. По умолчанию никакие               #
# пользовательские переменные окружения не принимаются.    #
#                                                          #
AcceptEnv LANG LC_*
#                                                          #
## PermitUserEnvironment ###################################
#                                                          #
# Указывает, должен ли sshd воспринимать                   #
# ~/.ssh/environment и опцию environment= в                #
# ~/.ssh/authorized_keys. По умолчанию - “no”. Стоит       #
# заметить, что разрешение обработки окружения может дать  #
# пользователям возможность обойти ограничения в некоторых #
# конфигурациях, использующих такие механизмы, как         #
# LD_PRELOAD.                                              #
#                                                          #
#                                                          #
## PidFile #################################################
#                                                          #
# Указывает файл, содержащий идентификатор процесса        #
# (process ID, PID) демона SSH.                            #
# По умолчанию - /var/run/sshd.pid                         #
#                                                          #
#                                                          #
## PrintLastLog ############################################
#                                                          #
# Указывает, должен ли sshd выводить на экран дату и время #
# последнего севнса при интерактивном входе пользователя.  #
# По умолчанию - “yes”.                                    #
#                                                          #
PrintLastLog yes
#                                                          #
## PrintMotd ###############################################
#                                                          #
# Указывает, должен ли sshd выводить на экран /etc/motd    #
# при интерактивном входе пользователя. На некоторых       #
# системах (например в Ubuntu) эта информация так же       #
# выводится на экран оболочкой.                            #
# Значение по умолчанию - “yes”.                           #
#                                                          #
PrintMotd no
#                                                          #
## Banner ##################################################
#                                                          #
# Указывает какой файл содержит текстовый баннер, который  #
# будет показан пользователю ПЕРЕД процедурой              #
# аутентификации. Опция доступна только для протокола ssh2.#
# По умолчанию - не показывает ничего.                     #
# В Ubuntu файл issue.net содержит фразу Ubuntu {version}, #
# например, для karmic это "Ubuntu 9.10". Можно            #
# использовать для дезориентации возможных атакующих,      #
# написав туда например "My D-Link Interet Router" =)      #
#                                                          #
Banner /etc/issue.net
#                                                          #
## ChrootDirectory #########################################
#                                                          #
# Если указан - предоставляет путь, по которому будет      #
# выполнен chroot после аутентификации. Путь и все его     #
# содержимое должны соответствовать принадлежащим          #
# суперпользователю папкам и быть не доступными для        #
# записи другими пользователями.                           #
# В пути могут быть указаны метки, подставляемые в         #
# процессе аутентификации:                                 #
# %% - заменяется литералом '%'                            #
# %h - заменяется домашней директорией                     #
# аутентифицируещегося пользователя                        #
# %u - заменяется именем аутентифицируещегося пользователя #
# chroot-папка должна содержать все необходимые файлы и    #
# папки для пользовательского сеанса. Для интерактивного   #
# сеанса нужны как минимум:                                #
# оболочка, обычно - sh                                    #
# базовые устройства в /dev, такие как:                    #
# null, zero, stdin, stdout, stderr, arandom и tty         #
# для сеанса передачи данных при помощи sftp никаких       #
# дополнительных настроек не нужно, если используется      #
# внутренний процесс sftp сервера. См. Subsystem для       #
# большей информации. По умолчанию chroot не выполняется.  #
#                                                          #
## ForceCommand ############################################
#                                                          #
# Заставляет выполняться указанную команду. Игнорирует     #
# любые команды переданные клиентом или записанные в       #
# ~/.ssh/rc. Команда вызывается из пользовательской        #
# оболочки с опцией -с. Подходит для запуска оболочки,     #
# команды или подсистемы. Наиболее полезна внутри блока    #
# Match. Команда, изначально переданная клиентом, хранится #
# в переменной окружения SSH_ORIGINAL_COMMAND. Если        #
# указать команду "internal-sftp", будет запущен           #
# внутренний sftp сервер, которому не нужны дополнительные #
# файлы и папки, описанные в директиве ChrootDirectory.    #
#                                                          #
## Subsystem ###############################################
#                                                          #
# Определяет и настраивает внешнюю подсистему (например    #
# демона передачи файлов - file transfer daemon).          #
# Аргументами служат имя и команда (с возможными           #
# аргументами), которая будет выполнена во время запроса   #
# на подсистемы. Команда sftp-server  запускает “sftp” -   #
# подсистему передачи файлов. Дополнительно можно указать  #
# в качестве подсистемы “internal-sftp” - что запустит     #
# внутренний sftp сервер. Это может значительно упростить  #
# настройку в случае использования директивы               #
# ChrootDirectory По умолчанию никаких подсистем           #
# не вызывается. Актуально только для протокола ssh2.      #
#                                                          #
Subsystem sftp /usr/lib/openssh/sftp-server
#                                                          #
############################################################
##################### Блок Match ###########################
############################################################
#                                                          #
# Специально вынес в конец файла, чтобы было удобнее       #
# писать Match правила.                                    #
#                                                  MadKox. #
#                                                          #
# Директива Match представляет собой начало условного      #
# блока. Если выполнены все критерии, указанные в строке   #
# Match, директивы в последующих строках блока выполняются,#
# позволяя обойти значения глобальных директив файла       #
# sshd_config для случая, являющегося критерием директивы  #
# Match. Блоком считаются все строки, идущие после строки  #
# с критерием (Match - строки) до следующей match-строки   #
# или до конца файла. Аргумент директивы Match - одна или  #
# несколько пар записей критериев. Возможные виды записей: #
# User                                                     #
# Group                                                    #
# Host                                                     #
# Address                                                  #
# Записи могут содержать как одиночные значения            #
# (например User=user), так и несколько значений,          #
# разделенные запятыми (User=user1,user2). Так же могут    #
# быть использованы регулярные выражения, описанные в      #
# секции PATTERNS файла ssh_config. Записи в критерии      #
# Address могут содержать адреса в нотации CIDR            #
# (Адрес/Длинна маски, например “192.0.2.0/24” или         #
# “3ffe:ffff::/32”). Стоит заметить, что представленная    #
# длинна маски должна соответствовать адресу, и слишком    #
# длинные/короткие для адреса не будут работать.           #
# В качестве директив Match может использовать только      #
# определенный набор директив:                             #
# AllowTcpForwarding                                       #
# Banner                                                   #
# ChrootDirectory                                          #
# ForceCommand                                             #
# GatewayPorts                                             #
# GSSAPIAuthentication                                     #
# HostbasedAuthentication                                  #
# KbdInteractiveAuthentication                             #
# KerberosAuthentication                                   #
# MaxAuthTries                                             # 
# MaxSessions                                              #
# PasswordAuthentication                                   #
# PermitOpen                                               #
# PermitRootLogin                                          #
# RhostsRSAAuthentication                                  #
# RSAAuthentication                                        #
# X11DisplayOffset                                         #
# X11Forwarding                                            #
# X11UseLocalHost                                          #

Можно скопировать приведенный выше текст в ваш собственный sshd_config и использовать в дальнейшем для настройки.

Похожее:  Система город — ЛК

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *