Одна из самых распространенных задач, возникающих при работе в сети — удаленный доступ к другим компьютерам и предоставление такого доступа.
Для решения этой задачи используется ставший уже традиционным протокол SSH (Secure Shell). В отличие от устаревших протоколов, таких как telnet и rsh/rlogin/rcp, которые передают данные прямым текстом и подвержены обыкновенному прослушиванию и различным атакам, SSH реализует соединение с удаленным компьютером, защищающее от:
прослушивания данных, передаваемых по этому соединению;
манипулирования данными на пути от клиента к серверу;
подмены клиента либо сервера путем манипулирования IP-адресами, DNS либо маршрутизацией.
В дополнение к отличным характеристикам в области обеспечения безопасного клиент-серверного соединения, SSH обладает следующими возможностями:
сжатие передаваемых данных;
туннелирование каналов внутри установленного соединения — в т.ч. соединений с X-сервером;
широкая распространенность: существуют реализации SSH для самых различных аппаратных платформ и операционных систем.
OpenSSH — это входящая в дистрибутив реализация SSH, поддерживающая версии 1.3, 1.5 и 2.0 протокола SSH, и распространяемая на условиях лицензии BSD. Эта реализация включает в себя:
клиентские программы ssh, scp и sftp (используются для запуска программ на удаленных серверах и копирования файлов по сети);
серверные программы sshd, sftp-server (используются для предоставления доступа по протоколу SSH);
вспомогательные программы make-ssh-known-hosts, rescp, ssh-keygen, ssh-add, ssh-agent, ssh-copy-id, ssh-keyscan.