16.3. Безопасная пересылка данных с применением SSH
Проблема
Требуется использовать rsync для копирования файлов на другой компьютер по локальной сети или Интернету с защитой пересылаемых данных посредством шифрования и аутентификации.
Решение
Используйте rsync на базе SSH. Для этого на всех хостах должна быть установлена и запущена программа SSH.
Укажите исходный и приёмный каталог и добавьте параметр -e ssh
в командную строку. Следующая команда пересылает файлы по локальной сети в учётную запись ljl на удалённом компьютере с именем stinkpad
:
ljl@compak:~$ rsync -av -e ssh stationery stinkpad:test
ljl@stinkpad's password:
building file list... done
stationery/
stationery/ljl-return-address-small.sxw
stationery/ljl-holiday-label.sxw
stationery/ljl-return-address-small.sxw
wrote 25984 bytes read 68 bytes 7443.43 bytes/sec
total size is 25666 speedup is 0.99
Будьте внимательны с путями. Параметр stinkpad:test
загружает каталог stationery
и всё его содержимое в каталог /home/ljl/test
на хосте stinkpad
. Если каталог /test
не существует, rsync создаст его:
ljl@stinkpad's password:
building file list... done
created directory test
Чтобы загрузить данные в каталог, находящийся за пределами вашего домашнего каталога, требуются права, достаточные для создания нового каталога программой rsync (или это должен быть существующий каталог, в который вам разрешена запись). Чтобы каталог задавался относительно корневой файловой системы, поставьте перед ним символ /
:
$ rsync -av -e ssh stationery stinkpad:/shared_uploads
Чтобы загрузка файлов производилась по Интернету, укажите своё имя пользователя в удалённой системе и полное доменное имя:
$ rsync -av -e ssh stationery ljl@stinkpad.test.net:/shared_uploads
Синтаксис копирования файлов с удалённого хоста отличается. Следующая команда копирует каталог /scripts
и его содержимое с удалённого хоста в локальный каталог /downloads
:
$ rsync -av -e ssh ljl@stinkpad.test.net:/shared_uploads/scripts /downloads/
Комментарий
И аутентификация, и пересылка шифруются, поэтому механизм rsync хорошо подходит для передачи конфиденциальной информации. Единственное неудобство — пользователи должны иметь учётные записи на всех компьютерах, на которых они будут сохранять или загружать файлы, что создаёт дополнительные хлопоты с настройкой. Центральный сервер с общими каталогами идеально подходит для управления сложными сценариями совместного доступа к файлам. Для управления доступом можно использовать стандартные инструменты Linux — права на файлы и каталоги, группы.
См. также