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