Заслуживает внимания еще одна возможность протокола SSH — непосредственная реализация инструментов, не связанных с регистрацией в системе. В частности, в состав пакета SSH входит программа под названием
scp
, которая используется для копирования файла с одного компьютера на другой. Формат вызова этой команды приведен ниже.
scp [[пользователь1]узел1:]имя_файла1 \
[[пользователь2]узел2:]имя_файла2]
Вызов
scp
очень похож на вызов программы
rcp
, реализующей r-команду, с помощью которой осуществляется копирование файлов. Программа
scp
создана для замены
rcp
. В отличие от
rcp
и многих других инструментов передачи файлов (например, FTP), копирует данные в зашифрованном виде, кроме того, она шифрует имя пользователя и пароль. Такую программу удобно использовать для передачи важных данных по сетям, в которых не гарантируется защита информации.
Дополнительные интерактивные возможности при передаче файлов обеспечивает программа
sftp
, которая работает подобно традиционной программе
ftp
, но защищает содержимое файлов и регистрационные данные посредством кодирования. Некоторые FTP-клиенты с графическим интерфейсом, например gFTP (
http://gftp.seul.org
), также поддерживают передачу данных на базе SSH. Таким образом, средства SSH, по сути, дублируют функции Telnet и FTP.
Стандартный сервер SSH (программа
sshd
) поддерживает как работу SSH-клиента (в системе Linux это программа
ssh
), так и обмен данными с программами
scp
и
sftp
. Этот сервер также обеспечивает туннелирование портов. Весь трафик проходит через стандартный SSH-порт 22.
Опции, используемые при запуске сервера 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, осуществляющих запуск сервера, предусмотрен код, который поверяет наличие файлов с ключами кодирования и при необходимости генерирует их. Если в вашей системе подобный код отсутствует, вы можете использовать для генерации файлов следующие команды:
Каждая из приведенных выше команд генерирует два ключа: закрытый, или личный, ключ (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
). Если вы измените существующие ключи, вам придется переконфигурировать клиентские программы, настроенные на работу со старыми ключами. Поэтому ключи следует изменять только в том случае, когда это действительно необходимо.