Опции, используемые при запуске сервера SSH

Опции, используемые при запуске сервера SSH

Независимо от того, какую реализацию протокола SSH вы используете, сервер обычно запускается с помощью сценария SysV. Запуск сервера может осуществляться также посредством суперсервера, но такая возможность используется крайне редко. Дело в том, что запуск старых версий сервера происходил с большой задержкой, так как некоторые операции, выполняемые при запуске, создавали большую нагрузку на процессор. Если сервер выполняется на современном оборудовании, задержка практически не заметна, поэтому при желании вы можете сконфигурировать sshd для запуска посредством суперсервера. При этом необходимо указывать опцию -i, назначение которой будет рассмотрено ниже.

При вызове сервера SSH могут быть заданы различные опции, изменяющие поведение программы. Опции, предусмотренные в пакете OpenSSH 3.0.2, перечислены ниже.

• -d. В обычных условиях сервер выполняется в режиме демона. Данная опция задает режим отладки, при котором сервер выполняется в качестве задачи переднего плана, поддерживает лишь одно соединение и выводит дополнительную отладочную информацию. Указывая дополнительные опции -d (sshd поддерживает до трех символов d), вы можете задать вывод дополнительных сведений о работе программы.

• -D. Эта опция отменяет режим демона, но, в отличие от опции -d, она не переводит сервер в режим отладки.

• -е. Данная опция указывает на то, что сообщения об ошибках, генерируемые sshd, не должны записываться в файл протокола, а должны выводиться в стандартный поток ошибок.

• -f конфигурационный_файл. В качестве конфигурационного файла сервер обычно использует /etc/ssh/sshd_config, но с помощью данной опции вы можете указать другой файл.

• -i. Данная опция сообщает программе о том, что программа была запущена посредством суперсервера (inetd или xinetd). Если для запуска sshd используется суперсервер, надо обязательно указывать данную опцию.

• -p порт. Эта опция задает порт для сервера. По умолчанию используется порт 22.

• -q. Данная опция подавляет протоколирование. (Обычно в файл протокола записывается информация об установлении соединения, выполнении аутентификации и разрыве соединения.)

• -4. По умолчанию sshd поддерживает соединения с компьютерами, адреса которых соответствуют либо протоколу IPv4, либо протоколу IPv6. Данная опция указывает на то, что sshd должен устанавливать соединения только с клиентами, имеющими адреса IPv4.

• -6. Данная опция разрешает установление соединений только с клиентами, имеющими адреса IPv6.

При запуске sshd могут задаваться и другие опции, большинство из которых определяют особенности кодирования данных. Дополнительную информацию об этих опциях можно получить на страницах справочной системы, посвященных sshd.

Перед первым запуском sshd необходимо сгенерировать файлы, содержащие ключи кодирования. При выполнении алгоритма SSH эти ключи используются для идентификации участников взаимодействия и кодирования данных. В большинстве случаев в сценариях SysV, осуществляющих запуск сервера, предусмотрен код, который поверяет наличие файлов с ключами кодирования и при необходимости генерирует их. Если в вашей системе подобный код отсутствует, вы можете использовать для генерации файлов следующие команды:

# ssh-keygen -q -t rsa1 -f /etc/ssh/ssh_host_key -C ' -N '

# ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C ' -N '

# ssh-keygeh -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C ' -N '

Каждая из приведенных выше команд генерирует два ключа: закрытый, или личный, ключ (private key), используемый только на сервере, и открытый, или общий, ключ (public key). Открытый ключ передается клиенту, чтобы он мог кодировать данные, передавая их на сервер. Закрытый и открытый ключи помещаются в файлы, имена которых отличаются друг от друга лишь тем, что к имени файла с открытым ключом добавляется суффикс .pub. Перед вызовом этих команд необходимо проверить наличие шести файлов: (ssh_host_key, ssh_host_key.pub, ssh_host_rsa_key, ssh_host_rsa_key.pub, ssh_host_dsa_key и ssh_host_dsa_key.pub (обычно эти файлы размещаются в каталоге /etc/ssh). Если вы измените существующие ключи, вам придется переконфигурировать клиентские программы, настроенные на работу со старыми ключами. Поэтому ключи следует изменять только в том случае, когда это действительно необходимо.