Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:ssh [2012/01/08 12:41] добавлен раздел sshfs |
wiki:ssh [2018/04/09 23:58] (текущий) [SSH aliases] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== SSH в Ubuntu ====== | + | ====== SSH ====== |
<note> | <note> | ||
Строка 5: | Строка 5: | ||
</note> | </note> | ||
- | ===== Краткое описание руководства ===== | + | Данная статья посвящена клиенту и серверу защищенного терминала (secure shell) в Ubuntu, их настройке и использованию. SSH — это специальный сетевой протокол, позволяющий получать удаленный доступ к компьютеру с большой степенью безопасности соединения. Более подробно про протокол ssh можно прочитать [[wpru>ssh|тут]]. |
- | + | ||
- | Данная статья посвящена клиенту и серверу защищенного терминала (secure shell) в Ubuntu, их настройке и использованию. SSH — это специальный сетевой протокол, позволяющий получать удаленный доступ к компьютеру с большой степенью безопасности соединения. Более подробно про протокол ssh можно прочитать [[http://ru.wikipedia.org/wiki/ssh|тут]]. | + | |
===== Описание принципов работы и используемых приложений ===== | ===== Описание принципов работы и используемых приложений ===== | ||
- | В основном, ssh реализован в виде двух приложений — ssh сервера и ssh клиента ((Но на самом деле существует много дополнительных утилит для работы с ssh.)) В Ubuntu используется свободная реализация клиента и сервера ssh — [[http://www.openssh.org/|OpenSSH]]. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. OpenSSH сервер может работать как с протоколом ssh1, так и с протоколом ssh2. В настоящее время протокол ssh1 считается небезопасным, поэтому его использование крайне не рекомендуется. Я намеренно опускаю различные технические подробности работы протокола, т. к. основной целью данного руководства является описание его настройки и использования. Про сам протокол, принципы его работы, алгоритмы шифрования и т. д. существует множество статей в интернете, например подробно про это можно почитать [[http://www.bog.pp.ru/work/ssh.html|здесь]]. | + | В основном, SSH реализован в виде двух приложений — SSH-сервера и SSH-клиента((На самом деле существует много дополнительных утилит для работы с ssh.)) В Ubuntu используется свободная реализация клиента и сервера SSH — [[http://www.openssh.org/|OpenSSH]]. При подключении клиент проходит процедуру авторизации у сервера и между ними устанавливается зашифрованное соединение. OpenSSH сервер может работать как с протоколом ssh1, так и с протоколом ssh2. В настоящее время протокол ssh1 считается небезопасным, поэтому его использование крайне не рекомендуется. Я намеренно опускаю различные технические подробности работы протокола, т. к. основной целью данного руководства является описание его настройки и использования. Про сам протокол, принципы его работы, алгоритмы шифрования и т. д. существует множество статей в интернете, например подробно про это можно почитать [[http://www.bog.pp.ru/work/ssh.html|здесь]]. |
===== Установка ===== | ===== Установка ===== | ||
- | При установке с alternate/server дисков пользователю предлагается на выбор установить несколько стандартных приложений, OpenSSH есть в их числе, и вы можете отметить его для установки. Если же у вас есть готовая система, то установить OpenSSH можно так: | + | Установить //OpenSSH// можно из [[терминал|терминала]] командой: |
- | <code> | + | <code=bash> |
- | sudo aptitude install ssh | + | sudo apt-get install ssh |
</code> | </code> | ||
- | Метапакет ssh содержит в себе и клиент и сервер, при этом скорее всего будет установлен только сервер, т. к. клиент часто бывает установлен в Ubuntu по умолчанию. | + | В метапакете ''ssh'' содержится как клиент, так и сервер, но при этом, скорее всего, будет установлен только сервер, т. к. клиент уже есть в Ubuntu по умолчанию. |
===== Настройка сервера ===== | ===== Настройка сервера ===== | ||
- | SSH сервер автоматически прописывается в автозагрузку при установке. Управлять его запуском/остановкой или перезапуском можно при помощи команд: | + | При установке SSH-сервер автоматически прописывается в автозагрузку. Управлять его запуском, остановкой или перезапуском можно с помощью команд: |
- | <code> | + | <code=bash> |
sudo service ssh stop|start|restart | sudo service ssh stop|start|restart | ||
</code> | </code> | ||
- | Основным файлом конфигурации ssh-сервера является файл ''/etc/ssh/sshd_config'', который | + | Основной файл конфигурации SSH-сервера — файл ''/etc/ssh/sshd_config'', доступный для чтения или редактирования только [[суперпользователь_в_ubuntu|суперпользователю]]. |
- | должен быть доступным для чтения/редактирования только [[суперпользователь_в_ubuntu|суперпользователю]]. | + | После каждого изменения этого файла необходимо перезапустить ssh-сервер для применения таких изменений. |
- | После каждого изменения этого файла необходимо перезапустить ssh-сервер для применения изменений. Вот пример конфигурации ssh-сервера по умолчанию в Ubuntu((Переведено с оригинального man sshd_config в Ubuntu 9.10. Добавлены дополнительные коментарии.)): | + | |
+ | Пример конфигурации SSH-сервера в Ubuntu по умолчанию((Переведено с оригинального man sshd_config в Ubuntu 9.10. Добавлены дополнительные коментарии.)): | ||
<file> | <file> | ||
# Пример конфигурации open-ssh сервера с русскими # | # Пример конфигурации open-ssh сервера с русскими # | ||
# комментариями. # | # комментариями. # | ||
- | |||
# Написан для http://help.ubuntu.ru # | # Написан для http://help.ubuntu.ru # | ||
- | |||
- | # Кодировка - utf8. # | ||
- | |||
# by MadKox, 01.2010. # | # by MadKox, 01.2010. # | ||
- | |||
# # | # # | ||
# # | # # | ||
# Условные обозначения: # | # Условные обозначения: # | ||
- | |||
# Под "по умолчанию" - подразумевается поведение sshd при # | # Под "по умолчанию" - подразумевается поведение sshd при # | ||
# неуказанной явно директиве. Стоит заметить, что в Ubuntu # | # неуказанной явно директиве. Стоит заметить, что в Ubuntu # | ||
# файл sshd_config уже содержит ряд настроек, которые # | # файл sshd_config уже содержит ряд настроек, которые # | ||
# являются настройками по умолчанию для именно для Ubuntu. # | # являются настройками по умолчанию для именно для Ubuntu. # | ||
- | |||
# Такие настройки указаны в этом файле. # | # Такие настройки указаны в этом файле. # | ||
- | |||
# # | # # | ||
############################################################ | ############################################################ | ||
- | |||
################ Настройки адресов/портов и т.д. ########### | ################ Настройки адресов/портов и т.д. ########### | ||
- | |||
############################################################ | ############################################################ | ||
- | |||
# # | # # | ||
## Port #################################################### | ## Port #################################################### | ||
- | |||
# # | # # | ||
- | |||
# Используемый порт. Можно указывать несколько, например: # | # Используемый порт. Можно указывать несколько, например: # | ||
- | |||
# Port 22 # | # Port 22 # | ||
- | |||
# Port 23 # | # Port 23 # | ||
- | |||
# Port 24 # | # Port 24 # | ||
- | |||
# Рекомендуется использовать нестандартный порт, т.к. # | # Рекомендуется использовать нестандартный порт, т.к. # | ||
# стандартный часто сканируется ботами на предмет # | # стандартный часто сканируется ботами на предмет # | ||
# потенциальных "дырок". Может быть опущен, если задан # | # потенциальных "дырок". Может быть опущен, если задан # | ||
# через адрес. См. также параметр ListenAddress. # | # через адрес. См. также параметр ListenAddress. # | ||
+ | # # | ||
Port 22 | Port 22 | ||
- | |||
# # | # # | ||
## ListenAddress ########################################### | ## ListenAddress ########################################### | ||
- | |||
# # | # # | ||
- | |||
# Сетевой адрес, на котором "слушает" сервер. Адрес можно # | # Сетевой адрес, на котором "слушает" сервер. Адрес можно # | ||
# записывать так: # | # записывать так: # | ||
- | |||
# ListenAddress host|IPv4_addr|IPv6_addr # | # ListenAddress host|IPv4_addr|IPv6_addr # | ||
- | |||
# ListenAddress host|IPv4_addr:port # | # ListenAddress host|IPv4_addr:port # | ||
- | |||
# ListenAddress [host|IPv6_addr]:port # | # ListenAddress [host|IPv6_addr]:port # | ||
- | |||
# Если порт не задан, sshd будет слушать на этом адресе и # | # Если порт не задан, sshd будет слушать на этом адресе и # | ||
# на порту, указанному в опции Port. Если вы будете # | # на порту, указанному в опции Port. Если вы будете # | ||
Строка 98: | Строка 73: | ||
# указывать, то по умолчанию слушает на всех локальных # | # указывать, то по умолчанию слушает на всех локальных # | ||
# адресах. Можно указывать несколько адресов. # | # адресах. Можно указывать несколько адресов. # | ||
- | |||
- | |||
# # | # # | ||
## AddressFamily ########################################### | ## AddressFamily ########################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, какое семейство IP адресов должно быть # | # Указывает, какое семейство IP адресов должно быть # | ||
# использовано sshd. Возможные варианты: # | # использовано sshd. Возможные варианты: # | ||
- | |||
# “any” - любые # | # “any” - любые # | ||
- | |||
# “inet” (только IPv4) # | # “inet” (только IPv4) # | ||
- | |||
# “inet6” (только IPv6) # | # “inet6” (только IPv6) # | ||
- | |||
# По умолчанию - “any”. # | # По умолчанию - “any”. # | ||
- | |||
AddressFamily inet | AddressFamily inet | ||
- | |||
# # | # # | ||
## UseDNS ################################################## | ## UseDNS ################################################## | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли sshd проверять имя хоста и # | # Указывает, должен ли sshd проверять имя хоста и # | ||
# используя это имя сверять IP адрес переданный клиентом с # | # используя это имя сверять IP адрес переданный клиентом с # | ||
# полученным от DNS. # | # полученным от DNS. # | ||
- | |||
# Значение по умолчанию - “yes”. # | # Значение по умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
############################################################ | ############################################################ | ||
Строка 136: | Строка 97: | ||
# Пустить/не пустить пользователя определяется директивами # | # Пустить/не пустить пользователя определяется директивами # | ||
# DenyUsers, AllowUsers, DenyGroups, и AllowGroups. # | # DenyUsers, AllowUsers, DenyGroups, и AllowGroups. # | ||
- | |||
# при этом, проверка проходит сверху - вниз по цепочке: # | # при этом, проверка проходит сверху - вниз по цепочке: # | ||
- | |||
# ## DenyUsers ## # | # ## DenyUsers ## # | ||
- | |||
# || # | # || # | ||
# ## AllowUsers ## # | # ## AllowUsers ## # | ||
# || # | # || # | ||
- | |||
# ## DenyGroups ## # | # ## DenyGroups ## # | ||
# || # | # || # | ||
- | |||
# ## AllowGroups ## # | # ## AllowGroups ## # | ||
- | |||
# Принимаются только имена пользователей и групп, числовые # | # Принимаются только имена пользователей и групп, числовые # | ||
# идентификаторы (UserID) - не распознаются. Корректная # | # идентификаторы (UserID) - не распознаются. Корректная # | ||
Строка 161: | Строка 116: | ||
# группы. См. PATTERNS в man ssh_config для дополнительной # | # группы. См. PATTERNS в man ssh_config для дополнительной # | ||
# информации о формах записи имен пользователей и групп. # | # информации о формах записи имен пользователей и групп. # | ||
- | |||
# # | # # | ||
## DenyUsers ############################################### | ## DenyUsers ############################################### | ||
- | |||
# # | # # | ||
- | |||
# Список ПОЛЬЗОВАТЕЛЕЙ, которым НЕЛЬЗЯ пользоваться sshd. # | # Список ПОЛЬЗОВАТЕЛЕЙ, которым НЕЛЬЗЯ пользоваться sshd. # | ||
- | |||
# По умолчанию - не указан = не запрещен никто. Т.е. если # | # По умолчанию - не указан = не запрещен никто. Т.е. если # | ||
# тут указан пользователь, то ему будет отказано в доступе # | # тут указан пользователь, то ему будет отказано в доступе # | ||
# к ssh серверу. # | # к ssh серверу. # | ||
- | |||
# # | # # | ||
- | |||
## AllowUsers ############################################## | ## AllowUsers ############################################## | ||
# # | # # | ||
# Список ПОЛЬЗОВАТЕЛЕЙ, которым МОЖНО пользоваться sshd, # | # Список ПОЛЬЗОВАТЕЛЕЙ, которым МОЖНО пользоваться sshd, # | ||
- | |||
# По умолчанию - не указан = разрешено всем. Т.е. если # | # По умолчанию - не указан = разрешено всем. Т.е. если # | ||
# указан хотя бы один пользователь, ssh доступ к серверу # | # указан хотя бы один пользователь, ssh доступ к серверу # | ||
- | |||
# доступен только для него. # | # доступен только для него. # | ||
# # | # # | ||
- | |||
- | |||
## DenyGroups ############################################## | ## DenyGroups ############################################## | ||
# # | # # | ||
# Список ГРУПП, которым НЕЛЬЗЯ пользоваться sshd. # | # Список ГРУПП, которым НЕЛЬЗЯ пользоваться sshd. # | ||
- | |||
# По умолчанию - не указан = не запрещена ни одна группа. # | # По умолчанию - не указан = не запрещена ни одна группа. # | ||
- | |||
# Т.е. если указана хотя бы одна группа, то пользователям, # | # Т.е. если указана хотя бы одна группа, то пользователям, # | ||
- | |||
# входящим в эту группу будет отказано в доступе к ssh # | # входящим в эту группу будет отказано в доступе к ssh # | ||
# серверу. # | # серверу. # | ||
- | |||
# # | # # | ||
- | |||
- | |||
## AllowGroups ############################################# | ## AllowGroups ############################################# | ||
# # | # # | ||
- | |||
# Список ГРУПП, которым МОЖНО пользоваться sshd. # | # Список ГРУПП, которым МОЖНО пользоваться sshd. # | ||
- | |||
# По умолчанию - не указан = разрешено всем. Т.е. если # | # По умолчанию - не указан = разрешено всем. Т.е. если # | ||
# указана хотя бы одна группа, то только тем пользователям,# | # указана хотя бы одна группа, то только тем пользователям,# | ||
# которые в нее входят будет разрешен доступ к ssh серверу.# | # которые в нее входят будет разрешен доступ к ssh серверу.# | ||
- | |||
# # | # # | ||
- | |||
############################################################ | ############################################################ | ||
######### Опции определения состояния соединения ########### | ######### Опции определения состояния соединения ########### | ||
Строка 217: | Строка 152: | ||
## TCPKeepAlive ############################################ | ## TCPKeepAlive ############################################ | ||
# # | # # | ||
- | |||
# Указывает, нужно системе посылать TCP сообщения клиенту # | # Указывает, нужно системе посылать TCP сообщения клиенту # | ||
# с целью поддержания соединения. Если посылать эти пакеты,# | # с целью поддержания соединения. Если посылать эти пакеты,# | ||
Строка 235: | Строка 169: | ||
TCPKeepAlive yes | TCPKeepAlive yes | ||
# # | # # | ||
- | |||
## ClientAliveCountMax ##################################### | ## ClientAliveCountMax ##################################### | ||
# # | # # | ||
- | |||
# Задает количество сообщений к клиентам, которые sshd # | # Задает количество сообщений к клиентам, которые sshd # | ||
- | |||
# посылает подряд, не получая какого либо ответа от # | # посылает подряд, не получая какого либо ответа от # | ||
# клиента. Если пороговое значение будет достигнуто, а # | # клиента. Если пороговое значение будет достигнуто, а # | ||
Строка 246: | Строка 177: | ||
# ssh сессию. Стоит отметить, что использование таких # | # ssh сессию. Стоит отметить, что использование таких # | ||
# сообщений в корне отличается от директивы TCPKeepAlive. # | # сообщений в корне отличается от директивы TCPKeepAlive. # | ||
- | |||
# Сообщения к/от клиентов посылаются по зашифрованному # | # Сообщения к/от клиентов посылаются по зашифрованному # | ||
# каналу и поэтому не подвержены спуфингу. Сообщения же # | # каналу и поэтому не подвержены спуфингу. Сообщения же # | ||
Строка 257: | Строка 187: | ||
# через 45 секунд. Эта директива работает только для # | # через 45 секунд. Эта директива работает только для # | ||
# протокола ssh2. # | # протокола ssh2. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## ClientAliveInterval ##################################### | ## ClientAliveInterval ##################################### | ||
# # | # # | ||
- | |||
# Задает временной интервал в секундах. Если в течении # | # Задает временной интервал в секундах. Если в течении # | ||
# этого интервала не было обмена данными с клиентом, sshd # | # этого интервала не было обмена данными с клиентом, sshd # | ||
Строка 271: | Строка 197: | ||
# только для протокола ssh2. # | # только для протокола ssh2. # | ||
# # | # # | ||
- | |||
- | |||
############################################################ | ############################################################ | ||
################ Общие опции аутентификации ################ | ################ Общие опции аутентификации ################ | ||
Строка 278: | Строка 202: | ||
# # | # # | ||
## AuthorizedKeysFile ###################################### | ## AuthorizedKeysFile ###################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает файл, в котором содержатся публичные ключи, # | # Указывает файл, в котором содержатся публичные ключи, # | ||
# используемые для аутентификации пользователей. Директива # | # используемые для аутентификации пользователей. Директива # | ||
# может содержать маркеры вида %М, которые подставляются в # | # может содержать маркеры вида %М, которые подставляются в # | ||
- | |||
# процессе установки соединения. # | # процессе установки соединения. # | ||
# Определены следующие маркеры: # | # Определены следующие маркеры: # | ||
- | |||
# %% - заменяется литералом '%' # | # %% - заменяется литералом '%' # | ||
- | |||
# %h - заменяется домашней директорией # | # %h - заменяется домашней директорией # | ||
# аутентифицируещегося пользователя # | # аутентифицируещегося пользователя # | ||
- | |||
# %u - заменяется именем аутентифицируещегося пользователя # | # %u - заменяется именем аутентифицируещегося пользователя # | ||
- | |||
# Таким образом, файл с ключами может быть задан как # | # Таким образом, файл с ключами может быть задан как # | ||
# абсолютным путем (т.е. один общий файл с ключами), так и # | # абсолютным путем (т.е. один общий файл с ключами), так и # | ||
Строка 300: | Строка 217: | ||
# файлу на каждого пользователя). # | # файлу на каждого пользователя). # | ||
# По умолчанию - “.ssh/authorized_keys”. # | # По умолчанию - “.ssh/authorized_keys”. # | ||
- | |||
# Пример для файла ключа в домашней папке пользователя: # | # Пример для файла ключа в домашней папке пользователя: # | ||
- | |||
# AuthorizedKeysFile %h/.ssh/authorized_key # | # AuthorizedKeysFile %h/.ssh/authorized_key # | ||
- | |||
# Пример для общего файла: # | # Пример для общего файла: # | ||
- | |||
# AuthorizedKeysFile /etc/ssh/authorized_keys # | # AuthorizedKeysFile /etc/ssh/authorized_keys # | ||
- | |||
# См. описание файла authorized_keys для большей # | # См. описание файла authorized_keys для большей # | ||
# информации. # | # информации. # | ||
- | |||
# # | # # | ||
- | |||
- | |||
- | # # | ||
- | |||
## ChallengeResponseAuthentication ######################### | ## ChallengeResponseAuthentication ######################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешить ли аутентификацию вида вопрос-ответ # | # Указывает, разрешить ли аутентификацию вида вопрос-ответ # | ||
- | |||
# (challenge-response authentication). Поддерживаются все # | # (challenge-response authentication). Поддерживаются все # | ||
# виды аутентификации из login.conf По умолчанию - “yes”, # | # виды аутентификации из login.conf По умолчанию - “yes”, # | ||
# т.е. разрешить. # | # т.е. разрешить. # | ||
- | |||
# В Ubuntu - выключена по соображениям безопасности. # | # В Ubuntu - выключена по соображениям безопасности. # | ||
# # | # # | ||
ChallengeResponseAuthentication no | ChallengeResponseAuthentication no | ||
- | |||
# # | # # | ||
## HostbasedUsesNameFromPacketOnly ######################### | ## HostbasedUsesNameFromPacketOnly ######################### | ||
# # | # # | ||
- | |||
# Указывает, как сервер должен получать имя хоста клиента # | # Указывает, как сервер должен получать имя хоста клиента # | ||
# при схеме аутентификации, основанной на проверке хоста. # | # при схеме аутентификации, основанной на проверке хоста. # | ||
- | |||
# Если задать "yes" - при проверке соответствия в файлах # | # Если задать "yes" - при проверке соответствия в файлах # | ||
- | |||
# ~/.shosts, ~/.rhosts или /etc/hosts.equiv sshd будет # | # ~/.shosts, ~/.rhosts или /etc/hosts.equiv sshd будет # | ||
# использовать имя хоста, предоставленное клиентом. # | # использовать имя хоста, предоставленное клиентом. # | ||
- | |||
# (выполняя реверсивное DNS распознование) Если задать "no"# | # (выполняя реверсивное DNS распознование) Если задать "no"# | ||
# - sshd будет ресолвить имя из самого TCP соединения. # | # - sshd будет ресолвить имя из самого TCP соединения. # | ||
- | |||
# По умолчанию - "no". # | # По умолчанию - "no". # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## IgnoreRhosts ############################################ | ## IgnoreRhosts ############################################ | ||
- | |||
# # | # # | ||
- | |||
# Запрещает использование файлов .rhosts и .shosts # | # Запрещает использование файлов .rhosts и .shosts # | ||
# в процессе аутентификации, основанной на проверке хоста. # | # в процессе аутентификации, основанной на проверке хоста. # | ||
# (RhostsRSAAuthentication или HostbasedAuthentication). # | # (RhostsRSAAuthentication или HostbasedAuthentication). # | ||
- | |||
# Файлы /etc/hosts.equiv и /etc/ssh/shosts.equiv все еще # | # Файлы /etc/hosts.equiv и /etc/ssh/shosts.equiv все еще # | ||
- | |||
# используются. # | # используются. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
IgnoreRhosts yes | IgnoreRhosts yes | ||
# # | # # | ||
- | |||
## IgnoreUserKnownHosts #################################### | ## IgnoreUserKnownHosts #################################### | ||
- | |||
# # | # # | ||
# Указывает должен ли sshd игнорировать пользовательские # | # Указывает должен ли sshd игнорировать пользовательские # | ||
- | |||
# "известные хосты" - файл ~/.ssh/known_hosts в процессе # | # "известные хосты" - файл ~/.ssh/known_hosts в процессе # | ||
- | |||
# аутентификации, основанной на проверке хоста # | # аутентификации, основанной на проверке хоста # | ||
- | |||
# (RhostsRSAAuthentication или HostbasedAuthentication). # | # (RhostsRSAAuthentication или HostbasedAuthentication). # | ||
- | |||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## PermitBlacklistedKeys ################################### | ## PermitBlacklistedKeys ################################### | ||
# # | # # | ||
Строка 392: | Строка 271: | ||
# попытки аутентификации с такими ключами будут занесены в # | # попытки аутентификации с такими ключами будут занесены в # | ||
# журнал и приняты, если значение “no” - попытки # | # журнал и приняты, если значение “no” - попытки # | ||
- | |||
# аутентификации будут отвергнуты. # | # аутентификации будут отвергнуты. # | ||
- | |||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## PermitEmptyPasswords #################################### | ## PermitEmptyPasswords #################################### | ||
- | |||
# # | # # | ||
- | |||
# В случае разрешенной аутентификации с помощью пароля, # | # В случае разрешенной аутентификации с помощью пароля, # | ||
- | |||
# указывает, возможен ли вход с пустым паролем. # | # указывает, возможен ли вход с пустым паролем. # | ||
- | |||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
# # | # # | ||
- | |||
PermitEmptyPasswords no | PermitEmptyPasswords no | ||
# # | # # | ||
- | |||
## PermitRootLogin ######################################### | ## PermitRootLogin ######################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, возможен ли ssh-вход под суперпользователем # | # Указывает, возможен ли ssh-вход под суперпользователем # | ||
# (root). Может принимать значения: # | # (root). Может принимать значения: # | ||
- | |||
# “yes” - суперпользователь может зайти. Применяется # | # “yes” - суперпользователь может зайти. Применяется # | ||
# текущая глобальная схема аутентификации. # | # текущая глобальная схема аутентификации. # | ||
# # | # # | ||
- | |||
# “without-password” - суперпользователь может зайти. # | # “without-password” - суперпользователь может зайти. # | ||
# Парольная аутентификация для него будет отключена. # | # Парольная аутентификация для него будет отключена. # | ||
# # | # # | ||
- | |||
# “forced-commands-only” - суперпользователь сможет зайти, # | # “forced-commands-only” - суперпользователь сможет зайти, # | ||
- | |||
# пользуясь аутентификацией на основе публичного ключа и # | # пользуясь аутентификацией на основе публичного ключа и # | ||
- | |||
# только если передаст необходимую к исполнению комнаду. # | # только если передаст необходимую к исполнению комнаду. # | ||
- | |||
# Это удобно для осуществления резервного копирования, # | # Это удобно для осуществления резервного копирования, # | ||
# даже в том случае, когда нормальный (т.е. не через ssh) # | # даже в том случае, когда нормальный (т.е. не через ssh) # | ||
# вход суперпользователя запрещен. Все остальные методы # | # вход суперпользователя запрещен. Все остальные методы # | ||
# аутентификации для суперпользователя будут заблокированы.# | # аутентификации для суперпользователя будут заблокированы.# | ||
- | |||
# # | # # | ||
- | |||
# “no” - суперпользователь не может использовать ssh для # | # “no” - суперпользователь не может использовать ssh для # | ||
# входа в систему. # | # входа в систему. # | ||
- | |||
# # | # # | ||
- | |||
# Значение по умолчанию - “yes”. # | # Значение по умолчанию - “yes”. # | ||
# # | # # | ||
PermitRootLogin yes | PermitRootLogin yes | ||
# # | # # | ||
- | |||
## Protocol ################################################ | ## Protocol ################################################ | ||
- | |||
# # | # # | ||
# Указывает, какой протокол должен использовать sshd. # | # Указывает, какой протокол должен использовать sshd. # | ||
- | |||
# Возможные значения ‘1’ и ‘2’ - ssh1 и ssh2 # | # Возможные значения ‘1’ и ‘2’ - ssh1 и ssh2 # | ||
# соответственно. Возможна одновременная запись, при # | # соответственно. Возможна одновременная запись, при # | ||
# которой значения следует разделять запятыми. # | # которой значения следует разделять запятыми. # | ||
- | |||
# По умолчанию - “2,1”. # | # По умолчанию - “2,1”. # | ||
- | |||
# Стоит отметить, что порядок следования протоколов в # | # Стоит отметить, что порядок следования протоколов в # | ||
# записи не задает приоритет, т.к. клиент выбирает какой # | # записи не задает приоритет, т.к. клиент выбирает какой # | ||
Строка 482: | Строка 331: | ||
# PasswordAuthentication) Т.к. аутентификация # | # PasswordAuthentication) Т.к. аутентификация # | ||
# запросов-ответов в PAM обычно выполняет ту же роль, # | # запросов-ответов в PAM обычно выполняет ту же роль, # | ||
- | |||
# что и парольная аутентификация, вам следует отключить # | # что и парольная аутентификация, вам следует отключить # | ||
# либо PasswordAuthentication, либо # | # либо PasswordAuthentication, либо # | ||
# ChallengeResponseAuthentication. Стоит отметить, что # | # ChallengeResponseAuthentication. Стоит отметить, что # | ||
# если директива UsePAM включена - вы не сможете запустить # | # если директива UsePAM включена - вы не сможете запустить # | ||
- | |||
# sshd от имени пользователя, отличного от root. # | # sshd от имени пользователя, отличного от root. # | ||
- | |||
# Значение по умолчанию - “no”. # | # Значение по умолчанию - “no”. # | ||
# # | # # | ||
Строка 495: | Строка 341: | ||
# # | # # | ||
## PasswordAuthentication ################################## | ## PasswordAuthentication ################################## | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешена ли аутентификация с использованием # | # Указывает, разрешена ли аутентификация с использованием # | ||
- | |||
# пароля. # | # пароля. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
- | |||
# # | # # | ||
## HostKey ################################################# | ## HostKey ################################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает файл, содержащий закрытый хост-ключ, # | # Указывает файл, содержащий закрытый хост-ключ, # | ||
# используемый SSH. По умолчанию - /etc/ssh/ssh_host_key # | # используемый SSH. По умолчанию - /etc/ssh/ssh_host_key # | ||
Строка 519: | Строка 357: | ||
# для протокола ssh1 и “dsa”/“rsa” для протокола ssh2. # | # для протокола ssh1 и “dsa”/“rsa” для протокола ssh2. # | ||
# # | # # | ||
- | |||
HostKey /etc/ssh/ssh_host_rsa_key | HostKey /etc/ssh/ssh_host_rsa_key | ||
HostKey /etc/ssh/ssh_host_dsa_key | HostKey /etc/ssh/ssh_host_dsa_key | ||
+ | # # | ||
############################################################ | ############################################################ | ||
########## Опции протокола SSH версии 1 (ssh1) ############# | ########## Опции протокола SSH версии 1 (ssh1) ############# | ||
Строка 531: | Строка 369: | ||
## KeyRegenerationInterval ################################# | ## KeyRegenerationInterval ################################# | ||
# # | # # | ||
- | |||
# Для протокола ssh1 - раз в определенное время # | # Для протокола ssh1 - раз в определенное время # | ||
# автоматически генерируется новый временный ключ сервера # | # автоматически генерируется новый временный ключ сервера # | ||
Строка 542: | Строка 379: | ||
# сгенерирован заново. Если значение задать равным 0 - # | # сгенерирован заново. Если значение задать равным 0 - # | ||
# ключ не будет генерироваться заново. # | # ключ не будет генерироваться заново. # | ||
- | |||
# По умолчанию значение - 3600 (секунд). # | # По умолчанию значение - 3600 (секунд). # | ||
- | |||
# # | # # | ||
KeyRegenerationInterval 3600 | KeyRegenerationInterval 3600 | ||
# # | # # | ||
## RhostsRSAAuthentication ################################# | ## RhostsRSAAuthentication ################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает, нужна ли аутентификация на основе файлов # | # Указывает, нужна ли аутентификация на основе файлов # | ||
# rhosts или /etc/hosts.equiv совместно с успешной # | # rhosts или /etc/hosts.equiv совместно с успешной # | ||
Строка 557: | Строка 390: | ||
# Актуально только для протокола ssh1. # | # Актуально только для протокола ssh1. # | ||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
# # | # # | ||
- | |||
RhostsRSAAuthentication no | RhostsRSAAuthentication no | ||
# # | # # | ||
- | |||
## RSAAuthentication ####################################### | ## RSAAuthentication ####################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешена ли "чистая" RSA-аутентификация. # | # Указывает, разрешена ли "чистая" RSA-аутентификация. # | ||
- | |||
# Актуально только для протокола ssh1. # | # Актуально только для протокола ssh1. # | ||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
- | |||
RSAAuthentication yes | RSAAuthentication yes | ||
# # | # # | ||
- | |||
## ServerKeyBits ########################################### | ## ServerKeyBits ########################################### | ||
# # | # # | ||
- | |||
# Определяет число бит во временном ключе сервера для # | # Определяет число бит во временном ключе сервера для # | ||
# протокола ssh1. Минимальное значение 512. # | # протокола ssh1. Минимальное значение 512. # | ||
- | |||
# Значение по умолчанию - 1024. # | # Значение по умолчанию - 1024. # | ||
- | |||
ServerKeyBits 768 | ServerKeyBits 768 | ||
+ | # # | ||
############################################################ | ############################################################ | ||
########### Опции протокола SSH версии 2 (ssh2) ############ | ########### Опции протокола SSH версии 2 (ssh2) ############ | ||
Строка 592: | Строка 413: | ||
# # | # # | ||
## Ciphers ################################################# | ## Ciphers ################################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает алгоритмы шифрования, разрешенные для # | # Указывает алгоритмы шифрования, разрешенные для # | ||
# протокола ssh2. Несколько алгоритмов должны быть # | # протокола ssh2. Несколько алгоритмов должны быть # | ||
# разделены запятыми. Поддерживаемые алгоритмы: # | # разделены запятыми. Поддерживаемые алгоритмы: # | ||
- | |||
# “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # | # “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, # | ||
- | |||
# “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “arcfour128”, # | # “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “arcfour128”, # | ||
- | |||
# “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”. # | # “arcfour256”, “arcfour”, “blowfish-cbc”, “cast128-cbc”. # | ||
- | |||
# По умолчанию используются: # | # По умолчанию используются: # | ||
- | |||
# aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # | # aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, # | ||
- | |||
# arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, # | # arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, # | ||
- | |||
# aes192-ctr,aes256-ctr # | # aes192-ctr,aes256-ctr # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## HostbasedAuthentication ################################# | ## HostbasedAuthentication ################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешена ли аутентификация, основанная на # | # Указывает, разрешена ли аутентификация, основанная на # | ||
# проверке хоста. Проверяется rhosts или /etc/hosts.equiv, # | # проверке хоста. Проверяется rhosts или /etc/hosts.equiv, # | ||
Строка 626: | Строка 433: | ||
# одинакова с директивой RhostsRSAAuthentication и # | # одинакова с директивой RhostsRSAAuthentication и # | ||
# подходит только для протокола ssh2. # | # подходит только для протокола ssh2. # | ||
- | |||
# По умолчанию - "no". # | # По умолчанию - "no". # | ||
# # | # # | ||
HostbasedAuthentication no | HostbasedAuthentication no | ||
- | |||
# # | # # | ||
## MACs #################################################### | ## MACs #################################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает допустимый алгоритм MAC (message # | # Указывает допустимый алгоритм MAC (message # | ||
# authentication code). Алгоритм MAC используется # | # authentication code). Алгоритм MAC используется # | ||
Строка 641: | Строка 444: | ||
# алгоритмов должны быть разделены запятыми. # | # алгоритмов должны быть разделены запятыми. # | ||
# По умолчанию используются: # | # По умолчанию используются: # | ||
- | |||
# hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160, # | # hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160, # | ||
# hmac-sha1-96,hmac-md5-96 # | # hmac-sha1-96,hmac-md5-96 # | ||
- | |||
- | # # | ||
- | |||
- | |||
# # | # # | ||
## PubkeyAuthentication #################################### | ## PubkeyAuthentication #################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешена ли аутентификация на основе # | # Указывает, разрешена ли аутентификация на основе # | ||
# публичного ключа. Актуально только для протокола ssh2. # | # публичного ключа. Актуально только для протокола ssh2. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
PubkeyAuthentication yes | PubkeyAuthentication yes | ||
Строка 666: | Строка 460: | ||
############ Применимо только для протокола ssh2 ########### | ############ Применимо только для протокола ssh2 ########### | ||
# # | # # | ||
- | |||
## GSSAPIAuthentication #################################### | ## GSSAPIAuthentication #################################### | ||
# # | # # | ||
- | |||
# Указывает, разрешена ли аутентификация пользователя на # | # Указывает, разрешена ли аутентификация пользователя на # | ||
# основе GSSAPI. По умолчанию - "no", т.е. запрещена. # | # основе GSSAPI. По умолчанию - "no", т.е. запрещена. # | ||
- | |||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## GSSAPIKeyExchange ####################################### | ## GSSAPIKeyExchange ####################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешен ли обмен ключами, основанный на # | # Указывает, разрешен ли обмен ключами, основанный на # | ||
# GSSAPI. Обмен ключам при помощи GSSAPI не полагается на # | # GSSAPI. Обмен ключам при помощи GSSAPI не полагается на # | ||
# ssh ключи при верификации идентичности хоста. # | # ssh ключи при верификации идентичности хоста. # | ||
- | |||
# По умолчанию - "no" - т.е. обмен запрещен. # | # По умолчанию - "no" - т.е. обмен запрещен. # | ||
- | |||
# # | # # | ||
- | |||
- | |||
- | # # | ||
- | |||
## GSSAPICleanupCredentials ################################ | ## GSSAPICleanupCredentials ################################ | ||
- | |||
# # | # # | ||
- | |||
# Указывает, нужно ли автоматически уничтожать # | # Указывает, нужно ли автоматически уничтожать # | ||
# пользовательский кеш аутентификационных полномочий при # | # пользовательский кеш аутентификационных полномочий при # | ||
# завершении сеанса. # | # завершении сеанса. # | ||
- | |||
# По умолчанию - "yes" - т.е. нужно уничтожать. # | # По умолчанию - "yes" - т.е. нужно уничтожать. # | ||
- | |||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## GSSAPIStrictAcceptorCheck ############################### | ## GSSAPIStrictAcceptorCheck ############################### | ||
# # | # # | ||
- | |||
# Указывает, насколько строгой должна быть проверка # | # Указывает, насколько строгой должна быть проверка # | ||
# идентичности клиента при аутентификации через GSSAPI. # | # идентичности клиента при аутентификации через GSSAPI. # | ||
- | |||
# Значение "yes" заставляет клиента аутентифицироваться в # | # Значение "yes" заставляет клиента аутентифицироваться в # | ||
# принимающей хост-службе на текущем хосте. Значение "no" # | # принимающей хост-службе на текущем хосте. Значение "no" # | ||
# позволяет клиенту аутентифицироваться при помощи любого # | # позволяет клиенту аутентифицироваться при помощи любого # | ||
- | |||
# ключа служб. # | # ключа служб. # | ||
- | |||
# Значение по умолчанию - "yes". # | # Значение по умолчанию - "yes". # | ||
- | |||
# Стоит заметить, что задание значения "no" может # | # Стоит заметить, что задание значения "no" может # | ||
# сработать только с редкими библиотеками Kerberos GSSAPI. # | # сработать только с редкими библиотеками Kerberos GSSAPI. # | ||
# # | # # | ||
- | |||
############################################################ | ############################################################ | ||
- | |||
################### Опции Kerberos ######################### | ################### Опции Kerberos ######################### | ||
- | |||
############################################################ | ############################################################ | ||
- | |||
# # | # # | ||
- | |||
## KerberosAuthentication ################################## | ## KerberosAuthentication ################################## | ||
- | |||
# # | # # | ||
- | |||
# Указывает, требует ли пароль, предоставленный # | # Указывает, требует ли пароль, предоставленный # | ||
# пользователем для аутентификации # | # пользователем для аутентификации # | ||
Строка 744: | Строка 505: | ||
# KDC’s identity) # | # KDC’s identity) # | ||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## KerberosGetAFSToken ##################################### | ## KerberosGetAFSToken ##################################### | ||
- | |||
# # | # # | ||
- | |||
# Если активен AFS и пользователь получил Kerberos 5 TGT, # | # Если активен AFS и пользователь получил Kerberos 5 TGT, # | ||
- | |||
# пытаться ли получить AFS токен до того, как пользователь # | # пытаться ли получить AFS токен до того, как пользователь # | ||
- | |||
# получит доступ к своей домашней папке. # | # получит доступ к своей домашней папке. # | ||
- | |||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
- | |||
# # | # # | ||
## KerberosOrLocalPasswd ################################### | ## KerberosOrLocalPasswd ################################### | ||
# # | # # | ||
- | |||
# Указывает, как поступать в случае, если аутентификация # | # Указывает, как поступать в случае, если аутентификация # | ||
# через Kerberos завершилась неудачей. Если # | # через Kerberos завершилась неудачей. Если # | ||
# значение = "yes" - пароль будет проверен при помощи # | # значение = "yes" - пароль будет проверен при помощи # | ||
# любого дополнительного локального механизма авторизации, # | # любого дополнительного локального механизма авторизации, # | ||
- | |||
# например - /etc/passwd. # | # например - /etc/passwd. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## KerberosTicketCleanup ################################### | ## KerberosTicketCleanup ################################### | ||
# # | # # | ||
- | |||
# Указывает, нужно ли автоматически уничтожать файл с # | # Указывает, нужно ли автоматически уничтожать файл с # | ||
# кешем тикета пользователя по завершению сеанса. # | # кешем тикета пользователя по завершению сеанса. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
+ | # # | ||
############################################################ | ############################################################ | ||
################# Опции перенаправления #################### | ################# Опции перенаправления #################### | ||
Строка 792: | Строка 534: | ||
## AllowAgentForwarding #################################### | ## AllowAgentForwarding #################################### | ||
# # | # # | ||
- | |||
# Указывает, разрешить или запретить перенаправление # | # Указывает, разрешить или запретить перенаправление # | ||
# ssh-agent'а. По умолчанию - “yes”, т.е. разрешить. # | # ssh-agent'а. По умолчанию - “yes”, т.е. разрешить. # | ||
Строка 799: | Строка 540: | ||
# запрещен shell доступ, т.к. они всегда смогут установить # | # запрещен shell доступ, т.к. они всегда смогут установить # | ||
# свои собственные аналоги агента. # | # свои собственные аналоги агента. # | ||
- | # # | ||
- | |||
# # | # # | ||
## AllowTcpForwarding ###################################### | ## AllowTcpForwarding ###################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешить или запретить перенаправление TCP. # | # Указывает, разрешить или запретить перенаправление TCP. # | ||
- | |||
# По умолчанию - “yes”, т.е. разрешить. Стоит заметить, # | # По умолчанию - “yes”, т.е. разрешить. Стоит заметить, # | ||
# что как и в случае с AllowAgentForwarding отключение # | # что как и в случае с AllowAgentForwarding отключение # | ||
Строка 814: | Строка 550: | ||
# установить свои аналоги. # | # установить свои аналоги. # | ||
# # | # # | ||
- | |||
# # | # # | ||
## GatewayPorts ############################################ | ## GatewayPorts ############################################ | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешать ли удаленным хостам доступ к # | # Указывает, разрешать ли удаленным хостам доступ к # | ||
# перенаправленным портам. По умолчанию, sshd слушает # | # перенаправленным портам. По умолчанию, sshd слушает # | ||
Строка 827: | Строка 560: | ||
# использовать GatewayPorts, чтобы разрешить sshd это # | # использовать GatewayPorts, чтобы разрешить sshd это # | ||
# делать. Директива может принимать 3 значения: # | # делать. Директива может принимать 3 значения: # | ||
- | |||
# "no" - только loopback. # | # "no" - только loopback. # | ||
- | |||
# "yes"- любые адреса. # | # "yes"- любые адреса. # | ||
- | |||
# "clientspecified" - адреса указанные клиентом. # | # "clientspecified" - адреса указанные клиентом. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## PermitOpen ############################################## | ## PermitOpen ############################################## | ||
# # | # # | ||
# Указывает куда разрешено перенаправление TCP портов. # | # Указывает куда разрешено перенаправление TCP портов. # | ||
- | |||
# Указание перенаправления должно принимать одну из # | # Указание перенаправления должно принимать одну из # | ||
# следующих форм: # | # следующих форм: # | ||
- | |||
# PermitOpen host:port # | # PermitOpen host:port # | ||
- | |||
# PermitOpen IPv4_addr:port # | # PermitOpen IPv4_addr:port # | ||
- | |||
# PermitOpen [IPv6_addr]:port # | # PermitOpen [IPv6_addr]:port # | ||
- | |||
# Несколько записей можно задать, разделяя их пробелами. # | # Несколько записей можно задать, разделяя их пробелами. # | ||
- | |||
# Аргумент “any” можно использовать для снятия всех # | # Аргумент “any” можно использовать для снятия всех # | ||
- | |||
# запретов на перенаправление портов. По умолчанию любое # | # запретов на перенаправление портов. По умолчанию любое # | ||
# перенаправление разрешено. # | # перенаправление разрешено. # | ||
- | # # | ||
- | |||
# # | # # | ||
## PermitTunnel ############################################ | ## PermitTunnel ############################################ | ||
# # | # # | ||
- | |||
# Указывает, разрешено ли перенаправление tun-устройств. # | # Указывает, разрешено ли перенаправление tun-устройств. # | ||
- | |||
# Может принимать значения: # | # Может принимать значения: # | ||
- | |||
# “yes” # | # “yes” # | ||
- | |||
# “point-to-point” (3-й сетевой уровень) # | # “point-to-point” (3-й сетевой уровень) # | ||
- | |||
# “ethernet” (2-й сетевой уровень) # | # “ethernet” (2-й сетевой уровень) # | ||
- | |||
# “no” # | # “no” # | ||
- | |||
# Значение “yes” разрешает одновременно и “point-to-point” # | # Значение “yes” разрешает одновременно и “point-to-point” # | ||
- | |||
# и “ethernet”. По умолчанию - “no”. # | # и “ethernet”. По умолчанию - “no”. # | ||
# # | # # | ||
- | |||
############################################################ | ############################################################ | ||
################## Опции журналирования #################### | ################## Опции журналирования #################### | ||
Строка 884: | Строка 593: | ||
# # | # # | ||
## SyslogFacility ########################################## | ## SyslogFacility ########################################## | ||
- | |||
# # | # # | ||
- | |||
# Задает код объекта журнала для записи сообщений в # | # Задает код объекта журнала для записи сообщений в # | ||
# системный журнал от sshd. Возможные значения: # | # системный журнал от sshd. Возможные значения: # | ||
- | |||
# DAEMON # | # DAEMON # | ||
- | |||
# USER # | # USER # | ||
- | |||
# AUTH # | # AUTH # | ||
- | |||
# LOCAL0 # | # LOCAL0 # | ||
- | |||
# LOCAL1 # | # LOCAL1 # | ||
- | |||
# LOCAL2 # | # LOCAL2 # | ||
- | |||
# LOCAL3 # | # LOCAL3 # | ||
- | |||
# LOCAL4 # | # LOCAL4 # | ||
- | |||
# LOCAL5 # | # LOCAL5 # | ||
- | |||
# LOCAL6 # | # LOCAL6 # | ||
- | |||
# LOCAL7 # | # LOCAL7 # | ||
- | |||
# По умолчанию используется AUTH. # | # По умолчанию используется AUTH. # | ||
- | |||
# # | # # | ||
SyslogFacility AUTH | SyslogFacility AUTH | ||
# # | # # | ||
- | |||
## LogLevel ################################################ | ## LogLevel ################################################ | ||
- | |||
# # | # # | ||
- | |||
# Задает уровень детальности журнала sshd. # | # Задает уровень детальности журнала sshd. # | ||
- | |||
# Возможные варианты: # | # Возможные варианты: # | ||
- | |||
# SILENT # | # SILENT # | ||
- | |||
# QUIET # | # QUIET # | ||
- | |||
# FATAL # | # FATAL # | ||
- | |||
# ERROR # | # ERROR # | ||
- | |||
# INFO # | # INFO # | ||
- | |||
# VERBOSE # | # VERBOSE # | ||
- | |||
# DEBUG # | # DEBUG # | ||
- | |||
# DEBUG1 # | # DEBUG1 # | ||
- | |||
# DEBUG2 # | # DEBUG2 # | ||
- | |||
# DEBUG3 # | # DEBUG3 # | ||
- | |||
# По умолчанию - INFO. # | # По умолчанию - INFO. # | ||
- | |||
# DEBUG и DEBUG1 эквивалентны друг другу. # | # DEBUG и DEBUG1 эквивалентны друг другу. # | ||
- | |||
# DEBUG2 и DEBUG3 задают самые высокие уровни отладочного # | # DEBUG2 и DEBUG3 задают самые высокие уровни отладочного # | ||
# вывода. Запись логов с уровнем DEBUG угрожает # | # вывода. Запись логов с уровнем DEBUG угрожает # | ||
# приватности пользователей и не рекомендована. # | # приватности пользователей и не рекомендована. # | ||
- | |||
# # | # # | ||
LogLevel INFO | LogLevel INFO | ||
Строка 962: | Строка 638: | ||
# # | # # | ||
## X11Forwarding ########################################### | ## X11Forwarding ########################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешено ли перенаправление графической # | # Указывает, разрешено ли перенаправление графической # | ||
# подсистемы X11. Может принимать значения “yes” или “no”. # | # подсистемы X11. Может принимать значения “yes” или “no”. # | ||
- | |||
# По умолчанию - “no”. # | # По умолчанию - “no”. # | ||
- | |||
# Внимание - включение простого перенаправления Х11 - # | # Внимание - включение простого перенаправления Х11 - # | ||
# большой риск как для сервера, так и для клиентов, т.к. в # | # большой риск как для сервера, так и для клиентов, т.к. в # | ||
Строка 982: | Строка 654: | ||
# автоматически отключено, если будет задействована # | # автоматически отключено, если будет задействована # | ||
# директива UseLogin. # | # директива UseLogin. # | ||
- | |||
# # | # # | ||
X11Forwarding yes | X11Forwarding yes | ||
# # | # # | ||
- | |||
## X11UseLocalhost ######################################### | ## X11UseLocalhost ######################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли sshd ограничить область # | # Указывает, должен ли sshd ограничить область # | ||
# перенаправления Х11 локальным loopback адресом, или # | # перенаправления Х11 локальным loopback адресом, или # | ||
# должен разрешить любые адреса. По умолчанию - sshd # | # должен разрешить любые адреса. По умолчанию - sshd # | ||
# "сажает" сервер перенаправления Х11 на локальный адрес # | # "сажает" сервер перенаправления Х11 на локальный адрес # | ||
- | |||
# и задает часть переменной окружения DISPLAY, отвечающую # | # и задает часть переменной окружения DISPLAY, отвечающую # | ||
# за имя хоста как “localhost”. Стоит заметить, что # | # за имя хоста как “localhost”. Стоит заметить, что # | ||
Строка 1003: | Строка 670: | ||
# ограничения. # | # ограничения. # | ||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## XAuthLocation ########################################### | ## XAuthLocation ########################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает полный путь к программе xauth. # | # Указывает полный путь к программе xauth. # | ||
- | |||
# По умолчанию - /usr/bin/X11/xauth. # | # По умолчанию - /usr/bin/X11/xauth. # | ||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## X11DisplayOffset ######################################## | ## X11DisplayOffset ######################################## | ||
- | |||
# # | # # | ||
- | |||
# Указывает номер первого дисплея, доступного sshd в # | # Указывает номер первого дисплея, доступного sshd в # | ||
# качестве перенаправления X11. Это сделано для того, # | # качестве перенаправления X11. Это сделано для того, # | ||
# чтобы перенаправленные "иксы" не пересекались с # | # чтобы перенаправленные "иксы" не пересекались с # | ||
- | |||
# реальными. По умолчанию - 10. # | # реальными. По умолчанию - 10. # | ||
# # | # # | ||
- | |||
X11DisplayOffset 10 | X11DisplayOffset 10 | ||
+ | # # | ||
############################################################ | ############################################################ | ||
################### Различные опции ######################## | ################### Различные опции ######################## | ||
Строка 1034: | Строка 689: | ||
# # | # # | ||
## LoginGraceTime ########################################## | ## LoginGraceTime ########################################## | ||
- | |||
# # | # # | ||
- | |||
# Время, по прошествии которого сервер отключает # | # Время, по прошествии которого сервер отключает # | ||
# пользователя, если тот не смог удовлетворительно # | # пользователя, если тот не смог удовлетворительно # | ||
Строка 1045: | Строка 698: | ||
# # | # # | ||
## MaxAuthTries ############################################ | ## MaxAuthTries ############################################ | ||
- | |||
# # | # # | ||
# Указывает максимальное число попыток аутентификации, # | # Указывает максимальное число попыток аутентификации, # | ||
- | |||
# разрешенное для одного соединения. # | # разрешенное для одного соединения. # | ||
- | |||
# Как только число неудачных попыток превысит половину # | # Как только число неудачных попыток превысит половину # | ||
- | |||
# заданного значения, все последующие попытки будут # | # заданного значения, все последующие попытки будут # | ||
- | |||
# заноситься в журнал. Значение по умолчанию - 6. # | # заноситься в журнал. Значение по умолчанию - 6. # | ||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## MaxSessions ############################################# | ## MaxSessions ############################################# | ||
- | |||
# # | # # | ||
# Указывает максимальное число одновременных подключений # | # Указывает максимальное число одновременных подключений # | ||
- | |||
# для каждого сетевого соединения. По умолчанию - 10. # | # для каждого сетевого соединения. По умолчанию - 10. # | ||
# # | # # | ||
- | |||
- | # # | ||
- | |||
## MaxStartups ############################################# | ## MaxStartups ############################################# | ||
# # | # # | ||
Строка 1079: | Строка 719: | ||
# либо истечением периода времени указанного в директиве # | # либо истечением периода времени указанного в директиве # | ||
# LoginGraceTime. Значение по умолчанию - 10. # | # LoginGraceTime. Значение по умолчанию - 10. # | ||
- | |||
# Дополнительно, можно задать ранний сброс соединений, # | # Дополнительно, можно задать ранний сброс соединений, # | ||
- | |||
# указав в качестве параметра три значения, разделенные # | # указав в качестве параметра три значения, разделенные # | ||
# двоеточием “start:rate:full” (например: "10:30:60"). # | # двоеточием “start:rate:full” (например: "10:30:60"). # | ||
# sshd отклонит попытку соединения с вероятностью равной # | # sshd отклонит попытку соединения с вероятностью равной # | ||
- | |||
# “rate/100” (т.е. в нашем примере - 30%), если уже # | # “rate/100” (т.е. в нашем примере - 30%), если уже # | ||
# имеется “start” (10) неавторизованных соединений. # | # имеется “start” (10) неавторизованных соединений. # | ||
- | |||
# Вероятность увеличивается линейно и любые попытки # | # Вероятность увеличивается линейно и любые попытки # | ||
# соединения будут отклонены, если число неавторизованных # | # соединения будут отклонены, если число неавторизованных # | ||
# соединений достигнет значения “full” (60). # | # соединений достигнет значения “full” (60). # | ||
- | # # | ||
- | |||
# # | # # | ||
## Compression ############################################# | ## Compression ############################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает, разрешено ли сжатие данных. Может быть # | # Указывает, разрешено ли сжатие данных. Может быть # | ||
# "yes" - сжатие разрешено. # | # "yes" - сжатие разрешено. # | ||
# "delayed" - сжатие отложено до тех пор, пока # | # "delayed" - сжатие отложено до тех пор, пока # | ||
# пользователь успешно не аутентифицируется. # | # пользователь успешно не аутентифицируется. # | ||
- | |||
# "no" - сжатие запрещено. # | # "no" - сжатие запрещено. # | ||
- | |||
# По умолчанию - "delayed". # | # По умолчанию - "delayed". # | ||
- | # # | ||
- | |||
- | |||
# # | # # | ||
## UseLogin ################################################ | ## UseLogin ################################################ | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли использоваться login для # | # Указывает, должен ли использоваться login для # | ||
# интерактивного сеанса. Значение по умолчанию - “no”. # | # интерактивного сеанса. Значение по умолчанию - “no”. # | ||
- | |||
# Стоит отметить, что login никогда не использовался для # | # Стоит отметить, что login никогда не использовался для # | ||
# выполнения удаленных команд. Так же заметим, что # | # выполнения удаленных команд. Так же заметим, что # | ||
# использование login сделает невозможным использование # | # использование login сделает невозможным использование # | ||
- | |||
# директивы X11Forwarding, потому что login не знает, что # | # директивы X11Forwarding, потому что login не знает, что # | ||
# ему делать с xauth. Если включена директива # | # ему делать с xauth. Если включена директива # | ||
# UsePrivilegeSeparation - она будет отключена после # | # UsePrivilegeSeparation - она будет отключена после # | ||
# авторизации. # | # авторизации. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## UsePrivilegeSeparation ################################## | ## UsePrivilegeSeparation ################################## | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли sshd разделять привилегии. Если да # | # Указывает, должен ли sshd разделять привилегии. Если да # | ||
# - то сначала будет создан непривилегированный дочерний # | # - то сначала будет создан непривилегированный дочерний # | ||
Строка 1140: | Строка 758: | ||
# вошедшего пользователя. Основная цель разделения # | # вошедшего пользователя. Основная цель разделения # | ||
# привилегий - предотвращение превышения прав доступа. # | # привилегий - предотвращение превышения прав доступа. # | ||
- | |||
# Значение по умолчанию - “yes”. # | # Значение по умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
UsePrivilegeSeparation yes | UsePrivilegeSeparation yes | ||
# # | # # | ||
## StrictModes ############################################# | ## StrictModes ############################################# | ||
- | |||
# # | # # | ||
# Указывает должен ли sshd проверить режимы доступа и # | # Указывает должен ли sshd проверить режимы доступа и # | ||
Строка 1155: | Строка 770: | ||
# всем подряд.По умолчанию - “yes”. # | # всем подряд.По умолчанию - “yes”. # | ||
# # | # # | ||
- | |||
StrictModes yes | StrictModes yes | ||
# # | # # | ||
## AcceptEnv ############################################### | ## AcceptEnv ############################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, какие переменные окружения, переданные # | # Указывает, какие переменные окружения, переданные # | ||
# клиентом будут приняты. См. опцию SendEnv в клиенте. # | # клиентом будут приняты. См. опцию SendEnv в клиенте. # | ||
- | |||
# Стоит заметить, что передача переменных возможна только # | # Стоит заметить, что передача переменных возможна только # | ||
# для протокола ssh2. Переменные указываются по имени, # | # для протокола ssh2. Переменные указываются по имени, # | ||
Строка 1174: | Строка 785: | ||
# директивой аккуратно. По умолчанию никакие # | # директивой аккуратно. По умолчанию никакие # | ||
# пользовательские переменные окружения не принимаются. # | # пользовательские переменные окружения не принимаются. # | ||
- | |||
# # | # # | ||
- | |||
AcceptEnv LANG LC_* | AcceptEnv LANG LC_* | ||
- | |||
# # | # # | ||
## PermitUserEnvironment ################################### | ## PermitUserEnvironment ################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли sshd воспринимать # | # Указывает, должен ли sshd воспринимать # | ||
# ~/.ssh/environment и опцию environment= в # | # ~/.ssh/environment и опцию environment= в # | ||
# ~/.ssh/authorized_keys. По умолчанию - “no”. Стоит # | # ~/.ssh/authorized_keys. По умолчанию - “no”. Стоит # | ||
# заметить, что разрешение обработки окружения может дать # | # заметить, что разрешение обработки окружения может дать # | ||
- | |||
# пользователям возможность обойти ограничения в некоторых # | # пользователям возможность обойти ограничения в некоторых # | ||
- | |||
# конфигурациях, использующих такие механизмы, как # | # конфигурациях, использующих такие механизмы, как # | ||
- | |||
# LD_PRELOAD. # | # LD_PRELOAD. # | ||
- | |||
# # | # # | ||
- | |||
# # | # # | ||
## PidFile ################################################# | ## PidFile ################################################# | ||
- | |||
# # | # # | ||
- | |||
# Указывает файл, содержащий идентификатор процесса # | # Указывает файл, содержащий идентификатор процесса # | ||
# (process ID, PID) демона SSH. # | # (process ID, PID) демона SSH. # | ||
# По умолчанию - /var/run/sshd.pid # | # По умолчанию - /var/run/sshd.pid # | ||
# # | # # | ||
- | |||
# # | # # | ||
## PrintLastLog ############################################ | ## PrintLastLog ############################################ | ||
# # | # # | ||
- | |||
# Указывает, должен ли sshd выводить на экран дату и время # | # Указывает, должен ли sshd выводить на экран дату и время # | ||
# последнего севнса при интерактивном входе пользователя. # | # последнего севнса при интерактивном входе пользователя. # | ||
- | |||
# По умолчанию - “yes”. # | # По умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
PrintLastLog yes | PrintLastLog yes | ||
# # | # # | ||
- | |||
## PrintMotd ############################################### | ## PrintMotd ############################################### | ||
- | |||
# # | # # | ||
- | |||
# Указывает, должен ли sshd выводить на экран /etc/motd # | # Указывает, должен ли sshd выводить на экран /etc/motd # | ||
# при интерактивном входе пользователя. На некоторых # | # при интерактивном входе пользователя. На некоторых # | ||
# системах (например в Ubuntu) эта информация так же # | # системах (например в Ubuntu) эта информация так же # | ||
- | |||
# выводится на экран оболочкой. # | # выводится на экран оболочкой. # | ||
# Значение по умолчанию - “yes”. # | # Значение по умолчанию - “yes”. # | ||
- | |||
# # | # # | ||
- | |||
PrintMotd no | PrintMotd no | ||
- | |||
# # | # # | ||
## Banner ################################################## | ## Banner ################################################## | ||
# # | # # | ||
- | |||
# Указывает какой файл содержит текстовый баннер, который # | # Указывает какой файл содержит текстовый баннер, который # | ||
# будет показан пользователю ПЕРЕД процедурой # | # будет показан пользователю ПЕРЕД процедурой # | ||
# аутентификации. Опция доступна только для протокола ssh2.# | # аутентификации. Опция доступна только для протокола ssh2.# | ||
- | |||
# По умолчанию - не показывает ничего. # | # По умолчанию - не показывает ничего. # | ||
- | |||
# В Ubuntu файл issue.net содержит фразу Ubuntu {version}, # | # В Ubuntu файл issue.net содержит фразу Ubuntu {version}, # | ||
- | |||
# например, для karmic это "Ubuntu 9.10". Можно # | # например, для karmic это "Ubuntu 9.10". Можно # | ||
# использовать для дезориентации возможных атакующих, # | # использовать для дезориентации возможных атакующих, # | ||
- | |||
# написав туда например "My D-Link Interet Router" =) # | # написав туда например "My D-Link Interet Router" =) # | ||
- | |||
# # | # # | ||
Banner /etc/issue.net | Banner /etc/issue.net | ||
Строка 1260: | Строка 842: | ||
# выполнен chroot после аутентификации. Путь и все его # | # выполнен chroot после аутентификации. Путь и все его # | ||
# содержимое должны соответствовать принадлежащим # | # содержимое должны соответствовать принадлежащим # | ||
- | |||
# суперпользователю папкам и быть не доступными для # | # суперпользователю папкам и быть не доступными для # | ||
- | |||
# записи другими пользователями. # | # записи другими пользователями. # | ||
- | |||
# В пути могут быть указаны метки, подставляемые в # | # В пути могут быть указаны метки, подставляемые в # | ||
# процессе аутентификации: # | # процессе аутентификации: # | ||
- | |||
# %% - заменяется литералом '%' # | # %% - заменяется литералом '%' # | ||
- | |||
# %h - заменяется домашней директорией # | # %h - заменяется домашней директорией # | ||
# аутентифицируещегося пользователя # | # аутентифицируещегося пользователя # | ||
- | |||
# %u - заменяется именем аутентифицируещегося пользователя # | # %u - заменяется именем аутентифицируещегося пользователя # | ||
- | |||
# chroot-папка должна содержать все необходимые файлы и # | # chroot-папка должна содержать все необходимые файлы и # | ||
# папки для пользовательского сеанса. Для интерактивного # | # папки для пользовательского сеанса. Для интерактивного # | ||
# сеанса нужны как минимум: # | # сеанса нужны как минимум: # | ||
- | |||
# оболочка, обычно - sh # | # оболочка, обычно - sh # | ||
- | |||
# базовые устройства в /dev, такие как: # | # базовые устройства в /dev, такие как: # | ||
# null, zero, stdin, stdout, stderr, arandom и tty # | # null, zero, stdin, stdout, stderr, arandom и tty # | ||
- | |||
# для сеанса передачи данных при помощи sftp никаких # | # для сеанса передачи данных при помощи sftp никаких # | ||
# дополнительных настроек не нужно, если используется # | # дополнительных настроек не нужно, если используется # | ||
# внутренний процесс sftp сервера. См. Subsystem для # | # внутренний процесс sftp сервера. См. Subsystem для # | ||
# большей информации. По умолчанию chroot не выполняется. # | # большей информации. По умолчанию chroot не выполняется. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## ForceCommand ############################################ | ## ForceCommand ############################################ | ||
# # | # # | ||
- | |||
# Заставляет выполняться указанную команду. Игнорирует # | # Заставляет выполняться указанную команду. Игнорирует # | ||
# любые команды переданные клиентом или записанные в # | # любые команды переданные клиентом или записанные в # | ||
Строка 1301: | Строка 869: | ||
# команды или подсистемы. Наиболее полезна внутри блока # | # команды или подсистемы. Наиболее полезна внутри блока # | ||
# Match. Команда, изначально переданная клиентом, хранится # | # Match. Команда, изначально переданная клиентом, хранится # | ||
- | |||
# в переменной окружения SSH_ORIGINAL_COMMAND. Если # | # в переменной окружения SSH_ORIGINAL_COMMAND. Если # | ||
# указать команду "internal-sftp", будет запущен # | # указать команду "internal-sftp", будет запущен # | ||
# внутренний sftp сервер, которому не нужны дополнительные # | # внутренний sftp сервер, которому не нужны дополнительные # | ||
# файлы и папки, описанные в директиве ChrootDirectory. # | # файлы и папки, описанные в директиве ChrootDirectory. # | ||
- | |||
- | # # | ||
- | |||
# # | # # | ||
## Subsystem ############################################### | ## Subsystem ############################################### | ||
- | |||
# # | # # | ||
- | |||
# Определяет и настраивает внешнюю подсистему (например # | # Определяет и настраивает внешнюю подсистему (например # | ||
# демона передачи файлов - file transfer daemon). # | # демона передачи файлов - file transfer daemon). # | ||
- | |||
# Аргументами служат имя и команда (с возможными # | # Аргументами служат имя и команда (с возможными # | ||
# аргументами), которая будет выполнена во время запроса # | # аргументами), которая будет выполнена во время запроса # | ||
Строка 1323: | Строка 884: | ||
# в качестве подсистемы “internal-sftp” - что запустит # | # в качестве подсистемы “internal-sftp” - что запустит # | ||
# внутренний sftp сервер. Это может значительно упростить # | # внутренний sftp сервер. Это может значительно упростить # | ||
- | |||
# настройку в случае использования директивы # | # настройку в случае использования директивы # | ||
# ChrootDirectory По умолчанию никаких подсистем # | # ChrootDirectory По умолчанию никаких подсистем # | ||
# не вызывается. Актуально только для протокола ssh2. # | # не вызывается. Актуально только для протокола ssh2. # | ||
- | |||
# # | # # | ||
Subsystem sftp /usr/lib/openssh/sftp-server | Subsystem sftp /usr/lib/openssh/sftp-server | ||
# # | # # | ||
############################################################ | ############################################################ | ||
- | |||
##################### Блок Match ########################### | ##################### Блок Match ########################### | ||
- | |||
############################################################ | ############################################################ | ||
- | |||
# # | # # | ||
- | |||
# Специально вынес в конец файла, чтобы было удобнее # | # Специально вынес в конец файла, чтобы было удобнее # | ||
- | # писать Match правила. | + | # писать Match правила. # |
# MadKox. # | # MadKox. # | ||
- | |||
# # | # # | ||
- | |||
# Директива Match представляет собой начало условного # | # Директива Match представляет собой начало условного # | ||
# блока. Если выполнены все критерии, указанные в строке # | # блока. Если выполнены все критерии, указанные в строке # | ||
Строка 1354: | Строка 907: | ||
# или до конца файла. Аргумент директивы Match - одна или # | # или до конца файла. Аргумент директивы Match - одна или # | ||
# несколько пар записей критериев. Возможные виды записей: # | # несколько пар записей критериев. Возможные виды записей: # | ||
- | |||
# User # | # User # | ||
- | |||
# Group # | # Group # | ||
- | |||
# Host # | # Host # | ||
- | |||
# Address # | # Address # | ||
- | |||
# Записи могут содержать как одиночные значения # | # Записи могут содержать как одиночные значения # | ||
# (например User=user), так и несколько значений, # | # (например User=user), так и несколько значений, # | ||
Строка 1375: | Строка 923: | ||
# В качестве директив Match может использовать только # | # В качестве директив Match может использовать только # | ||
# определенный набор директив: # | # определенный набор директив: # | ||
- | |||
# AllowTcpForwarding # | # AllowTcpForwarding # | ||
- | |||
# Banner # | # Banner # | ||
- | |||
# ChrootDirectory # | # ChrootDirectory # | ||
- | |||
# ForceCommand # | # ForceCommand # | ||
- | |||
# GatewayPorts # | # GatewayPorts # | ||
- | |||
# GSSAPIAuthentication # | # GSSAPIAuthentication # | ||
- | |||
# HostbasedAuthentication # | # HostbasedAuthentication # | ||
- | |||
# KbdInteractiveAuthentication # | # KbdInteractiveAuthentication # | ||
- | |||
# KerberosAuthentication # | # KerberosAuthentication # | ||
- | |||
# MaxAuthTries # | # MaxAuthTries # | ||
- | |||
# MaxSessions # | # MaxSessions # | ||
- | |||
# PasswordAuthentication # | # PasswordAuthentication # | ||
- | |||
# PermitOpen # | # PermitOpen # | ||
- | |||
# PermitRootLogin # | # PermitRootLogin # | ||
- | |||
# RhostsRSAAuthentication # | # RhostsRSAAuthentication # | ||
- | |||
# RSAAuthentication # | # RSAAuthentication # | ||
- | |||
# X11DisplayOffset # | # X11DisplayOffset # | ||
- | |||
# X11Forwarding # | # X11Forwarding # | ||
- | |||
# X11UseLocalHost # | # X11UseLocalHost # | ||
- | |||
- | # # | ||
</file> | </file> | ||
- | Вы можете скопировать приведенный выше текст в ваш ''sshd_config'' и использовать в дальнейшем для настройки. | + | Можно скопировать приведенный выше текст в ваш собственный ''sshd_config'' и использовать в дальнейшем для настройки. |
===== Рекомендуемые параметры. Безопасность ===== | ===== Рекомендуемые параметры. Безопасность ===== | ||
- | + | Сам по себе, неправильно настроенный SSH-сервер — огромная уязвимость в безопасности системы, т. к. у возможного злоумышленника есть возможность получить практически неограниченный доступ к системе. Помимо этого, у sshd есть много дополнительных полезных опций, которые желательно включить для повышения удобства работы и безопасности((Описание различных директив см. выше в примере ''sshd_config'', ниже приведены только некоторые, самые интересные директивы)). | |
- | Сам по себе, неправильно настроенный ssh сервер — огромная уязвимость в безопасности системы, т. к. у возможного злоумышленника есть возможность получить практически неограниченный доступ к системе. Помимо этого, у sshd есть много дополнительных полезных опций, которые желательно включить для повышения удобства работы и безопасности((Описание различных директив см. выше в примере ''sshd_config'', ниже приведены только некоторые, самые интересные директивы)). | + | |
==== Port, ListenAddress и AddressFamily ==== | ==== Port, ListenAddress и AddressFamily ==== | ||
- | |||
Эти три параметра определяют, на каких портах и адресах ваш сервер будет ждать входящие соединения. Во-первых, имеет смысл по возможности ограничить семейство обрабатываемых адресов реально используемыми, т. е. если вы используете только IPv4 — отключите IРv6, и наоборот. Сделать это можно при помощи параметра AddressFamily, например (для разрешения IPv4 и запрета IPv6): | Эти три параметра определяют, на каких портах и адресах ваш сервер будет ждать входящие соединения. Во-первых, имеет смысл по возможности ограничить семейство обрабатываемых адресов реально используемыми, т. е. если вы используете только IPv4 — отключите IРv6, и наоборот. Сделать это можно при помощи параметра AddressFamily, например (для разрешения IPv4 и запрета IPv6): | ||
- | <code> | + | <file> |
AddressFamily inet | AddressFamily inet | ||
- | </code> | + | </file> |
Во-вторых, желательно сменить стандартный порт (22) на котором слушает sshd. Это связано с тем, что многочисленные сетевые сканеры постоянно пытаются соединиться с 22-м портом и как минимум получить доступ путем перебора логинов/паролей из своей базы. Даже если у вас и отключена парольная аутентификация — эти попытки сильно засоряют журналы и (в большом количестве) могут негативно повлиять на скорость работы ssh сервера. Если же вы по какой либо причине не желаете изменить стандартный порт вы можете использовать как различные внешние утилиты для борьбы брутфорсерами, например [[http://www.fail2ban.org|fail2ban]], так и встроенные, такие как ''MaxStartups''.\\ | Во-вторых, желательно сменить стандартный порт (22) на котором слушает sshd. Это связано с тем, что многочисленные сетевые сканеры постоянно пытаются соединиться с 22-м портом и как минимум получить доступ путем перебора логинов/паролей из своей базы. Даже если у вас и отключена парольная аутентификация — эти попытки сильно засоряют журналы и (в большом количестве) могут негативно повлиять на скорость работы ssh сервера. Если же вы по какой либо причине не желаете изменить стандартный порт вы можете использовать как различные внешние утилиты для борьбы брутфорсерами, например [[http://www.fail2ban.org|fail2ban]], так и встроенные, такие как ''MaxStartups''.\\ | ||
Задать порт можно как абсолютным значением для всех интерфейсов при помощи директивы ''Port'', так и конкретным значением для каждого интерфейса, при помощи директивы ''ListenAddress''. Например: | Задать порт можно как абсолютным значением для всех интерфейсов при помощи директивы ''Port'', так и конкретным значением для каждого интерфейса, при помощи директивы ''ListenAddress''. Например: | ||
- | <code> | + | <file> |
Port 2002 | Port 2002 | ||
- | </code> | + | </file> |
или | или | ||
- | <code> | + | <file> |
ListenAddress 192.168.0.1:2003 | ListenAddress 192.168.0.1:2003 | ||
ListenAddress 192.168.1.1:2004 | ListenAddress 192.168.1.1:2004 | ||
- | </code> | + | </file> |
==== Запрещение удаленного доступа для суперпользователя ==== | ==== Запрещение удаленного доступа для суперпользователя ==== | ||
- | По умолчанию root-доступ разрешен. Это означает, что клиент при подключении в качестве пользователя может указать root, и во многих случаях получить контроль над системой. При условии, что по умолчанию в Ubuntu пользователь, добавленный при установке системы имеет возможность решать все административные задачи через sudo, создавать возможность root доступа к системе как минимум странно. Рекомендуется отключить эту опцию совсем, или применять ее только в режиме ''forced-commands-only''. Отключить root-доступ можно так: | + | По умолчанию root-доступ запрещен по паролю (по ключу - можно) - опция PermitRootLogin установлена в without-password((В более старых версиях и на некоторых других дистрибутивах может стоять и вовсе 'yes'.)). Но, при условии, что по умолчанию в Ubuntu пользователь, добавленный при установке системы имеет возможность решать все административные задачи через sudo, создавать возможность root доступа к системе через ssh - выглядит неразумно (даже при аутентификации по ключу). Рекомендуется совсем отключить. эту опцию, или применять ее только в режиме ''forced-commands-only''. Отключить root-доступ можно так: |
- | <code> | + | <file> |
PermitRootLogin no | PermitRootLogin no | ||
- | </code> | + | </file> |
==== Парольная аутентификация ==== | ==== Парольная аутентификация ==== | ||
Разрешенная по умолчанию парольная аутентификация является практически самым примитивным способом авторизации в sshd. С одной стороны это упрощает конфигурацию и подключение новых пользователей (пользователю достаточно знать свой системный логин/пароль), с другой стороны пароль всегда можно подобрать, а пользователи часто пренебрегают созданием сложных и длинных паролей. Специальные боты постоянно сканируют доступные из интернета ssh сервера и пытаются авторизоваться на них путем перебора логинов/паролей из своей базы. Настоятельно не рекомендуется использовать парольную аутентификацию. Отключить ее можно так: | Разрешенная по умолчанию парольная аутентификация является практически самым примитивным способом авторизации в sshd. С одной стороны это упрощает конфигурацию и подключение новых пользователей (пользователю достаточно знать свой системный логин/пароль), с другой стороны пароль всегда можно подобрать, а пользователи часто пренебрегают созданием сложных и длинных паролей. Специальные боты постоянно сканируют доступные из интернета ssh сервера и пытаются авторизоваться на них путем перебора логинов/паролей из своей базы. Настоятельно не рекомендуется использовать парольную аутентификацию. Отключить ее можно так: | ||
- | <code> | + | <file> |
PasswordAuthentication no | PasswordAuthentication no | ||
- | </code> | + | </file> |
Если по каким либо причинам вам все таки хочется использовать парольную аутентификацию — позаботьтесь о том, чтобы никто не мог авторизоваться с пустым паролем. Для этого задайте директиву ''PermitEmptyPasswords'': | Если по каким либо причинам вам все таки хочется использовать парольную аутентификацию — позаботьтесь о том, чтобы никто не мог авторизоваться с пустым паролем. Для этого задайте директиву ''PermitEmptyPasswords'': | ||
- | <code> | + | <file> |
PermitEmptyPasswords no | PermitEmptyPasswords no | ||
- | </code> | + | </file> |
- | ==== Протоколы ssh1 и ssh2 ==== | + | ==== Протоколы SSH1 и SSH2 ==== |
- | Как уже было сказано, sshd может работать с протоколами ssh1 и ssh2. При этом использование небезопасного ssh1 крайне не рекомендуется. Заставить sshd работать только с протоколом ssh2 можно так: | + | Как уже было сказано, sshd может работать с протоколами SSH1 и SSH2. При этом использование небезопасного SSH1 крайне не рекомендуется. Заставить sshd работать только с протоколом SSH2 можно так: |
- | <code> | + | <file> |
Protocol 2 | Protocol 2 | ||
- | </code> | + | </file> |
==== Аутентификация на основе SSH2 RSA-ключей ==== | ==== Аутентификация на основе SSH2 RSA-ключей ==== | ||
- | Наиболее предпочтительным способом авторизации является аутентификация на основе SSH2 RSA-ключей. При таком способе пользователь генерирует на своей стороне пару ключей, из которой один ключ является секретным, а другой публичным. Публичный ключ копируется на сервер и служит для проверки идентичности пользователя. Более подробно про создание пары ключей и способы размещения их на сервере см. в описании ssh-клиента. | + | Наиболее предпочтительным способом авторизации является аутентификация на основе SSH2 RSA-ключей. При таком способе пользователь генерирует на своей стороне пару ключей, из которой один ключ является секретным, а другой публичным. Публичный ключ копируется на сервер и служит для проверки идентичности пользователя. Более подробно про создание пары ключей и способы размещения их на сервере см. в описании SSH-клиента. |
Включить аутентификацию по публичному ключу можно так: | Включить аутентификацию по публичному ключу можно так: | ||
- | <code> | + | <file> |
PubkeyAuthentication yes | PubkeyAuthentication yes | ||
- | </code> | + | </file> |
- | Сервер должен знать, где ему следует искать публичный ключ пользователя. Для этого применяется специальный файл. Синтаксис его может быть следующим:\\ | + | Сервер должен знать, где ему следует искать публичный ключ пользователя. Для этого применяется специальный файл ''authorized_keys''. Синтаксис его может быть следующим:\\ |
- | FIXME - про файл authorized_keys\\ | + | <file> |
+ | # Коментарии записываются только с новой строки | ||
+ | # общий вид записей в файле authorized_keys | ||
+ | # [опции] тип_ключа(ssh-rsa или ssh-dss) очень_длинная_строка_непонятная_простому_человеку [логин@хост] | ||
+ | ssh-rsa AAAAB3Nza...LiPk== user@example.net | ||
+ | from="*.sales.example.net,!pc.sales.example.net" ssh-rsa AAAAB2...19Q== john@example.net | ||
+ | command="dump /home",no-pty,no-port-forwarding ssh-dss AAAAC3...51R== example.net | ||
+ | permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-dss AAAAB5...21S== | ||
+ | tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== jane@example.net | ||
+ | </file> | ||
Можно указать как один общий файл с ключами, так и по файлу на каждого пользователя. Последний способ является более удобным и безопасным, т. к. можно во-первых указывать разные комбинации ключей для каждого пользователя((Т. е. user1 может быть прописан как у себя — в файле /home/user1/.ssh/keys) так и у другого пользователя, что позволит ему выполнять со своего компьютера вход как «под собой», так и под «другим»)), а во-вторых ограничить доступ к публичному ключу пользователя. Задать файл с ключами можно при помощи директивы ''AuthorizedKeysFile'': | Можно указать как один общий файл с ключами, так и по файлу на каждого пользователя. Последний способ является более удобным и безопасным, т. к. можно во-первых указывать разные комбинации ключей для каждого пользователя((Т. е. user1 может быть прописан как у себя — в файле /home/user1/.ssh/keys) так и у другого пользователя, что позволит ему выполнять со своего компьютера вход как «под собой», так и под «другим»)), а во-вторых ограничить доступ к публичному ключу пользователя. Задать файл с ключами можно при помощи директивы ''AuthorizedKeysFile'': | ||
- | <code> | + | <file> |
AuthorizedKeysFile %h/.ssh/my_keys | AuthorizedKeysFile %h/.ssh/my_keys | ||
- | </code> | + | </file> |
для схемы пользователь — файл\\ | для схемы пользователь — файл\\ | ||
или\\ | или\\ | ||
- | <code> | + | <file> |
AuthorizedKeysFile /etc/ssh/authorized_keys | AuthorizedKeysFile /etc/ssh/authorized_keys | ||
- | </code> | + | </file> |
- | для схемы с общим файлом. | + | для схемы с общим файлом. По умолчанию SSH-клиент ищет ключи в файле ''~/.ssh/authorized_keys'' . |
==== Еще про безопасность ==== | ==== Еще про безопасность ==== | ||
+ | [[http://rus-linux.net/nlib.php?name=/MyLDP/sec/openssh.html|20 советов по безопасному использованию сервера OpenSSH]] | ||
FIXME | FIXME | ||
- | ==== Немного про дополнительные настройки ==== | + | ==== Дополнительные настройки ==== |
=== Пользователи и группы. === | === Пользователи и группы. === | ||
Строка 1502: | Строка 1036: | ||
По умолчанию из способов определения состояния соединения включен только способ проверки TCP соединения — ''TCPKeepAlive'', однако, sshd умеет определять состояния соединения и более удобными и безопасными способами. Подробнее см. соответствующий раздел в примере ''sshd_config''. | По умолчанию из способов определения состояния соединения включен только способ проверки TCP соединения — ''TCPKeepAlive'', однако, sshd умеет определять состояния соединения и более удобными и безопасными способами. Подробнее см. соответствующий раздел в примере ''sshd_config''. | ||
- | === Производительность. MaxStartups. === | + | === Производительность. MaxStartups === |
FIXME | FIXME | ||
- | === Перенаправление портов. === | + | === Перенаправление портов === |
FIXME | FIXME | ||
- | === Перенаправление X11. === | + | === Перенаправление X11 === |
- | На сервере в файле /etc/ssh/sshd_config выставить параметр ForwardX11 yes (по умолчанию в 11.04 включено) | + | На сервере в файле ''/etc/ssh/sshd_config'' выставить параметр (по умолчанию включено): |
- | На клиенте в файле /etc/ssh/ssh_config выставить параметры ForwardAgent yes , ForwardX11 yes (по умолчанию выключено). | + | <file>ForwardX11 yes</file> |
- | Запускать на клиенте можно так ssh yurauname@serverip firefox . Или сначала заходим ssh yurauname@serverip потом запускаем sudo synaptic к примеру. | + | На клиенте в файле ''/etc/ssh/ssh_config'' выставить параметры (по умолчанию выключено): |
+ | <file> | ||
+ | ForwardAgent yes | ||
+ | ForwardX11 yes | ||
+ | </file> | ||
+ | Запускать на клиенте можно так ''ssh yurauname@serverip firefox'' . Или сначала заходим ''ssh yurauname@serverip'' потом запускаем, например ''sudo synaptic'' . | ||
- | === Подсистемы. Использование sftpd. === | + | === SFTP === |
- | + | В sshd по умолчанию встроен SFTP-сервер. Протокол SFTP (SSH File Transfer Protocol) - SSH-протокол для передачи файлов. Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2. | |
- | FIXME | + | Для того чтобы включить поддержку SFTP добавьте в ''sshd_config'' строку |
+ | <file> | ||
+ | Subsystem sftp /usr/lib/openssh/sftp-server | ||
+ | </file> | ||
+ | По умолчанию поддержка SFTP включена. | ||
- | === Использование критериев. Директива Match. === | + | === Использование критериев. Директива Match === |
FIXME | FIXME | ||
- | ===== Настройка ssh-клиента ===== | + | ===== Настройка SSH-клиента ===== |
- | Наиболее безопасным считается вход по ключу, и в большинстве случаев на стороне сервера такая возможность включена, так что для её использования никаких прав суперпользователя не требуется. На клиентской машине генерим ключ: | + | Наиболее безопасным считается вход по ключу, и в большинстве случаев на стороне сервера такая возможность включена, так что для её использования никаких прав суперпользователя не требуется. На клиентской машине генерируем ключ: |
- | <code>ssh-keygen -t rsa</code> | + | <code=bash>ssh-keygen -t rsa</code> |
Получаем предложение ввести пароль для защиты файла ключа (оказывается полезным при попадании файла в чужие руки). Если мы собираемся по SSH выполнять скрипты, то оставляем пустым. | Получаем предложение ввести пароль для защиты файла ключа (оказывается полезным при попадании файла в чужие руки). Если мы собираемся по SSH выполнять скрипты, то оставляем пустым. | ||
- | Передаём ключ на сервер командой | + | Передаём публичный ключ на сервер командой |
- | <code>ssh-copy-id -i ~/.ssh/id_rsa user@server</code> | + | <code=bash>ssh-copy-id -i ~/.ssh/id_rsa.pub user@server</code> |
Всё, можно заходить. | Всё, можно заходить. | ||
Когда ssh работает на нестандартном порту: | Когда ssh работает на нестандартном порту: | ||
- | <code>ssh-copy-id -i "$IDENTITY" "-p $SSH_PORT $SSH_USER@$SSH_HOST"</code> | + | <code=bash>ssh-copy-id -i ~/.ssh/id_rsa.pub "-p port user@server"</code> |
- | <note tip>если возникает ошибка: | + | <note tip>Если возникает ошибка: |
- | Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys' | + | <code>Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'</code> |
- | попробуйте взять параметры в кавычки: ssh-copy-id '-i "$IDENTITY" "-p $SSH_PORT $SSH_USER@$SSH_HOST"' | + | попробуйте взять параметры в кавычки: |
- | вот тут: http://mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/ | + | <code=bash>ssh-copy-id '-i /home/user/.ssh/id_rsa.pub "-p port user@server"'</code> |
- | приводится пример: | + | |
- | <code>ssh-copy-id ‘-p XXXX -i ~/.ssh/id_rsa.pub username@host’</code> | + | |
</note> | </note> | ||
Удобно при подключени на удалённой системе пользоваться [[wiki:screen|утилитой screen]]. | Удобно при подключени на удалённой системе пользоваться [[wiki:screen|утилитой screen]]. | ||
+ | ==== Настройка удаленной ssh-директории в Nautilus ==== | ||
+ | Смотрите статью [[nautilus#Подключение к удаленным серверам|Nautilus]]. | ||
+ | ==== Монтирование удаленной директории с помощью sshfs ==== | ||
+ | Монтирование удаленного каталога в локальный каталог <code bash>sshfs user@hostingserver.ru:/home/userdir ~/sshfsdir</code> | ||
+ | Размонтирование <code bash>fusermount -u ~/sshsfdir</code> | ||
+ | ==== SSH aliases ==== | ||
+ | При использовании нескольких серверов с различными параметрами доступа (нестандартный порт, длинное имя хоста, логин отличный от локального, и т.п.) порой утомительно вводить все настройки подключения каждый раз заново. Для облегчения этого можно использовать aliases. | ||
- | ==== Настройка удаленной ssh-папки в Nautilus ==== | + | Настройки хранятся в ''~/.ssh/config'' для одного пользователя и в ''/etc/ssh/ssh_config'' глобально для всех пользователей. |
- | FIXME | + | Пример конфига. Описано может быть множество серверов. Подробнее в **man ssh_config** (не путать с **sshd_config**) |
- | ==== Монтирование удаленной папки с помощью sshfs ==== | + | <code>Host AliasName # Произвольное имя хоста |
- | + | HostName 1.2.3.4 # Можно указывать как IP, так и hostname (если работает DNS) | |
- | FIXME | + | User YourUserName # Если пользователь не совпадает с локальным пользователем |
+ | Port YourSSHPort # Если нестандартный порт</code> | ||
+ | После этого можно подключаться к серверу командой <code bash>ssh AliasName</code> | ||
==== ssh-agent ==== | ==== ssh-agent ==== | ||
Строка 1560: | Строка 1110: | ||
* Анализ лога подключения: | * Анализ лога подключения: | ||
- | <code>ssh -vvv user@host</code> | + | <code=bash>ssh -vvv user@host</code> |
* Анализ конфигурационных файлов клиента и сервера. | * Анализ конфигурационных файлов клиента и сервера. | ||
Расположение конфигурационных файлов можно узнать из | Расположение конфигурационных файлов можно узнать из | ||
<code>man ssh | <code>man ssh | ||
man sshd</code> | man sshd</code> | ||
+ | |||
+ | ======Использование смарт-карт====== | ||
+ | |||
+ | 1. Создание сертификата и экспорт открытого ключа, а также клиентская часть на Windows + Putty SC описано на сайте: | ||
+ | http://habrahabr.ru/post/88540/ | ||
+ | Описанное там дополнение Key Manager доступно только в старых версиях Firefox. Проверено на версии 3.5 для Windows. | ||
+ | Прямая ссылка на дополнение: https://addons.mozilla.org/ru/firefox/addon/key-manager/ | ||
+ | |||
+ | 2. Подготовка сервера. Вам необходимо убедиться что в конфигурации sshd разрешена аутентификация при помощи публичных ключей. Для этого необходимо в файле «sshd_config» указать значение параметра «PubkeyAuthentication» в «yes». | ||
+ | Затем в файл "~/.ssh/authorized_keys" добавляем наш публичный ключ полученный ранее (одной строкой). Обратите внимание, файл ".ssh/authorized_keys" находится в домашнем каталоге того пользователя, который потом будет логиниться по публичному ключу. | ||
+ | |||
+ | 3. Клиентская часть на Linux. Потребуется пересборка пакета OpenSSH без параметров. Рекомендуется только указать префиксы каталогов, например --prefix=/usr. Также следует учесть, что файлы конфигов будут в /usr/etc. | ||
+ | Перед началом необходимы пакеты: opensc-lite-devel, zlib-devel, openssl-devel. | ||
+ | Устанавливаем драйвер смарт-карты. | ||
+ | Для удобства в конфиге ssh_config (не путать с sshd_config) указать путь к библиотеке pkcs: | ||
+ | PKCS11Provider=<путь к библиотеке> | ||
+ | |||
+ | 4. На клиенте запускаем | ||
+ | ssh user@host | ||
+ | Если смарт-карта (токен) подключена, будет запрошен пароль и выполнен вход в сессию SSH. | ||
+ | |||
+ | ======Возможные проблемы при использовании====== | ||
+ | |||
+ | Привычная комбинация клавиш <key>Ctrl</key>+<key>s</key>, используемая во многих редакторах для сохранения исправлений, при работе в терминале с ssh-cервером приведёт к выполнению команды XOFF что внешне напоминает зависание сессии. Однако это не так. Сервер продолжает принимать вводимые символы и команды, но не выводит это на экран. Что бы выйти из такого затруднительного положения достаточно применить комбинацию <key>Ctrl</key>+<key>q</key>, тем самым включив режим XON обратно. | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
+ | * [[http://help.ubuntu.ru/wiki/fail2ban|Fail2ban]] | ||
* [[http://www.nestor.minsk.by/sr/2007/11/sr71104.html|Хитрости SSH]] | * [[http://www.nestor.minsk.by/sr/2007/11/sr71104.html|Хитрости SSH]] | ||
Строка 1578: | Строка 1153: | ||
{{tag> Администрирование Система FIXME}} | {{tag> Администрирование Система FIXME}} | ||
- | |||
- | |||
- | |||
- | |||
- | |||