Программы SSH и OpenSSH могут взаимодействовать между собой, поэтому, организуя обмен по протоколу SSH, не слишком важно, какой тип клиента и сервера используется на компьютерах. Существуют незначительные несоответствия между конкретными версиями пакетов, которые нетрудно учесть. Протокол SSH разработан так, что компьютеры, на которых установлено программное обеспечение, поддерживающее различные версии SSH, могут использовать средства, присутствующие в обеих версиях. Например, если на одном компьютере поддерживается SSH 2, а на другом — SSH 3, они могут взаимодействовать по протоколу SSH 2.
В большинстве случаев пакет OpenSSH поставляется в виде нескольких файлов. Наиболее важными являются openssh, поддерживающий базовые средства SSH, а также openssh-clientи openssh-server, которые реализуют соответственно клиентскую программу и сервер.
Протокол SSH распространен не так широко как Telnet, поэтому вам необходимо специально установить клиентские программы SSH на компьютеры ваших пользователей. Такие программы существуют для различных операционных систем. Информация о бесплатно распространяемых клиентах SSH находится на сервере http://www.freessh.org. Поддержку SSH обеспечивают также многие коммерческие терминальные программы, ориентированные на работу в системах Windows и MacOS. Инсталлировать клиент SSH нетрудно; сложнее доставить эти программы на все компьютеры и научить пользователей работать с ними.
Основное отличие SSH от большинства протоколов удаленной регистрации заключается в том, что SSH обеспечивает шифрование передаваемых данных. Кроме того, данный протокол поддерживает перенаправление, или туннелирование, сетевых портов между клиентом и сервером. Это значит, что посредством SSH-соединения могут передаваться пакеты других протоколов. Возможна конфигурация, при которой SSH-соединение будет автоматически использоваться для обмена данными по некоторому протоколу, например, такое взаимодействие реализовано для X Window. (Подробно вопрос установления соединений средствами X Window будет рассмотрен в главе 14.) Затратив определенные усилия для настройки системы, можно реализовать туннелирование сообщений любого протокола посредством защищенного соединения. Вы можете даже использовать средства PPP для создания сетевого интерфейса, предполагающего туннелирование средствами SSH. В результате можно получить виртуальную частную сеть (VPN — Virtual Private Network). Необходимые действия по настройке такой сети описаны в документе VPN HOWTO ( http://www.linuxdoc.org/HOWTO/VPN-HOWTO.html).
Заслуживает внимания еще одна возможность протокола 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, назначение которой будет рассмотрено ниже.
Читать дальше