Вероятно, самая быстрая техника - это обработка данных, их передача по каналу, а затем распаковка на другом конце.
Что-то вроде этого
$ tar -czf - root_dir | ssh -c blowfish remote_machine (cd parent_dir ; tar -xzf -)
Флаг -z указывает tar на сжатие, что должно быть очень похоже на отдельный шаг gzip, который вы включаете отдельно, если хотите.
Если вам нужно скопировать или синхронизировать данные в следующий раз, вы можете использовать rsync (-z дает сжатие). В частности, если вышеуказанная команда прервана, rsync подтвердит ваши данные и отправит все, что вы пропустили.
Будет намного чище, если ssh не запрашивает у вас пароли, но я думаю, что он будет работать даже с паролями.