Безопасная передача файлов по протоколу SSH
Secure Shell поддерживает не только терминальные сессии, но и передачу файлов. SCP очень похожа на обычную команду CP. Различие в том, что источник или получатель должен содержать имя хоста, например:
scp -p root@host: /var/log/mail.Log
scp -pr somedir hostname:
Первая команда загружает mail.Log с удаленного компьютера. Вторая копирует директорию полностью в домашний каталог пользователя на другом сервере.
Привычный метод передачи файлов — FTP, но он небезопасен, т.к. данные и пароли передаются в открытом виде. OpenSSH содержит SecureFTP сервер, запускаемый в системе по умолчанию. Большое количество FTP-клиентов, как и многие файловые менеджеры, сейчас умеют работать с SFTP. Попробуйте соединиться с sftp://user@hostname, чтобы просмотреть домашнюю директорию пользователя. SCP и SFTP используют такой же способ авторизации, как SSH, а если вы настроите ключи, они тоже будут работать.
Мы узнали, как при помощи SSH осуществить безопасный удаленный терминал или удаленно запускать X-приложения, но у него в запасе есть еще кое-что — канал SSH можно использовать как туннель для другого соединения, даже если другое соединение передает данные в открытом виде. Поскольку данные проходят через шифрованный канал, они защищены от посторонних глаз. Это особенно удобно при пользовании беспроводным соединением, защищенным WEP шифрованием.
Установить SSH-туннель можно так:
ssh -f -N -L 4321: home.Network: 25 [email protected]
Опция -f запускает SSH в бэкграунде, а -N указывает, что не требуется выполнять команды. Редирект обрабатывается опцией -L, принимающей 3 параметра: первый — номер локального порта (который как минимум 1024, если вы не root), второй — сервер для перенаправления, и третий - номер порта на сервере. В самом конце указываются username и хост удаленного компьютера, который будет осуществлять редирект трафика. Учтите, что имя хоста в середине опции -L разрешается на удаленном сервере, здесь можно использовать localhost, но это потенциальная путаница. Результат выполнения команды будет таким, как если бы вы указали почтовой программе использовать localhost на порте 4321 как SMTP сервер, который будет перенаправлен через шифрованный канал на порт 25 (стандартный порт для SMTP) на home.Network.
Если хотите — перенаправьте трафик на другой хост, но данные будут шифроваться только на первом участке пути (до SSH сервера). Этим можно воспользоваться, если межсетевой экран или прокси-сервер не разрешает подключение к конкретному хосту или порту.
SSH умеет делать намного больше, и все через шифрованные, аутентифицированные соединения. Есть ещё много неизведанного — чего же вы ждете?
RFC 4251 — Архитектура протокола SSH.