Você pode fazer isso com um comando ssh, apenas diga tar
para criar o arquivo em sua saída padrão:
ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz
Outra abordagem, que é mais conveniente se você quiser fazer muitas manipulações de arquivos na outra máquina, mas é um exagero para uma criação de arquivo único, é montar o sistema de arquivos da máquina remota com SSHFS (um sistema de arquivos FUSE ). Você deve ativar a compactação no nível do SSH.
mkdir ~/net/remote.example.com
sshfs -C remote.example.com:/ ~/net/remote.example.com
tar -czf foo.tgz -C ~/net/remote.example.com/path/to/directory foo