Я хочу надежно копировать файлы с одного компьютера на другой, однако другой компьютер не является доверенным, и у меня нет прямого доступа к нему, кроме как дать владельцу компьютера инструкции. Кроме того, это единовременная ситуация, поэтому следует избегать любых громоздких настроек. Какой самый простой и удобный способ сделать это?
Я имею в виду программу со следующим рабочим процессом:
Хост с файлами выдает гипотетическую команду, чтобы сделать файлы доступными, защищенными паролем:
file-offer -p PASSWORD file1 file2 file3 directory
Другой использует гипотетическую команду с паролем для получения файла (приветствуется также графический интерфейс для выбора файлов):
file-receive -p PASSWORD file2
Самое близкое, что у меня есть сейчас, - это взлом, который работает, но не очень удобно и доставит пользователям Windows некоторые проблемы:
tar cf - [files]... | gpg -c --passphrase PASSWORD | nc -l -p 6666
nc host1 6666 | gpg --passphrase PASSWORD | tar xf - [files]...
Еще несколько заметок:
- ни один из пользователей не имеет root-доступа (поэтому серверы не обращаются к портам <1024)
- следует избегать копирования файлов до их доступности (т.е. никаких
cp files /var/www/
) - ssh /scp не работает, так как это потребует передачи пароля одного хоста другому
- использование rsync с rsyncd.conf в большинстве случаев работает, но неудобно в настройке и не позволяет совместно использовать один файл, только каталоги
- сервер ftp /http, который можно запустить и настроить с помощью одной командной строки, может работать, приветствуется поддержка шифрования https, а также способ обмениваться отдельными файлами вместо просто каталогов, не знаю ни одного сервера, который соответствует этим критериям
- USB не вариант, так как другой хост может быть доступен только по сети
- служба загрузки файлов также не подходит (ограничения по размеру файла, загрузка не доверенному третьему лицу, пользователь может находиться в локальной сети, а не в Интернете и т. д.)