• PubkeyAuthentication
. Данная опция выполняет те же действия, что и опция RSAAuthentication
, но применяется при работе с версией 2 протокола SSH.
• PasswordAuthentication
. Значение yes
данной опции позволяет пользователям регистрироваться, вводя пароль в ответ на приглашение. Этот способ аутентификации широко используется в настоящее время, поэтому желательно принять значение опции PasswordAuthentication
, установленное по умолчанию.
• X11Forwarding
. Как было сказано ранее, протокол SSH может быть использован для туннелирования X-соединений. Чтобы это стало возможным, соответствующая конфигурация должна быть установлена как для сервера, так и для клиентской программы. Значение yes
опции X11Forwarding
указывает на то, что сервер SSH должен перенаправлять соединения X Window. Опция аналогичного назначения предусмотрена и для клиента SSH. Имя этой опции — ForwardX11
; она указывается в файле /etc/ssh/ssh_config
.
При настройке сервера SSH могут быть использованы дополнительные опции. Одни из них определяют альтернативные способы аутентификации, другие уточняют действие перечисленных выше опций, а третьи задают детали функционирования сервера. После установки пакета, реализующего SSH-взаимодействие, внимательно просмотрите конфигурационный файл, который поставляется в составе пакета, и выясните, подходит ли вам конфигурация, установленная по умолчанию. Дополнительную информацию о назначении опций можно найти на страницах справочной системы, посвященных sshd
.
Аутентификация при SSH-взаимодействии
В процессе обмена сервер и клиент SSH используют различные способы кодирования передаваемых данных. Упрощенно это выглядит так. Участники взаимодействия договариваются о временном использовании метода кодирования с помощью открытого ключа. Ключ представляет собой достаточно большое число и применяется для шифрования информации, передаваемой по сети. При получении данных система декодирует их с помощью закрытого ключа. Такой способ кодирования используется для передачи другого типа ключа, называемого секретным ключом. Секретный ключ используется в другом методе шифрования и обеспечивает более высокое быстродействие по сравнению с кодированием посредством открытого и закрытого ключей. По завершении передачи секретного ключа компьютеры, обменивающиеся по протоколу SSH, начинают использовать для кодирования данных секретный ключ. Помимо передачи секретного ключа, открытый и закрытый ключи применяются также при аутентификации; идентификатор пользователя, зашифрованный с помощью закрытого ключа, позволяет убедиться в том, что пользователь — именно тот, за кого он себя выдает.
В протоколе SSH предусмотрено несколько способов аутентификации пользователей. Детали процесса аутентификации различаются в зависимости от версии протокола. В общих чертах алгоритм аутентификации выглядит следующим образом.
1. Клиент предпринимает попытку аутентификации, основанной на принципе доверия, однако в большинстве случаев значения опций RhostsAuthentication
и IgnoreRhosts
запрещают этот способ аутентификации. Если же попытка оказывается успешной, клиент получает доступ к ресурсам сервера; при этом пользователю не приходится указывать имя и пароль.
2. Клиент пытается использовать способ аутентификации, представляющий собой сочетание принципа доверия и RSA-аутентификации. В большинстве случаев такая попытка тоже не имеет успеха.
3. Клиент пытается использовать RSA-аутентификацию, которая предполагает передачу специального файла. Если такой файл присутствует на сервере и если последующие действия в рамках этого метода оказывается успешными, пользователь получает доступ к системе. В зависимости от конфигурации, от пользователя может потребоваться ввод фразы пароля. Для того чтобы этот метод мог быть использован, и клиент, и сервер должны быть настроены соответствующим образом.
4. Если все предшествующие попытки аутентификации окончились неудачей, пользователь должен ввести пароль. Этот пароль передается серверу в закодированном виде и применяется для аутентификации пользователя.
Сервер хранит файлы, содержащие ключи, в каталоге /etc/ssh
и применяет их при работе со всеми пользователями. SSH-клиенты получают открытые ключи от серверов и могут использовать их для аутентификации этих серверов. Открытые ключи хранятся в каталоге ~/.ssh
, и за их поддержку отвечает пользователь. При первом обращении клиента к серверу по протоколу SSH клиентская программа оповещает пользователя о том, что в файл записан новый ключ. (Конфигурация программы может быть установлена так, что для выполнения этого действия потребуется подтверждение пользователя.) Если сервер изменит ключ, ssh
отобразит предупреждающее сообщение, которое выглядит следующим образом: