Suponho que você prefira gzip-los primeiro, depois enviá-los.
cat dafile | gzip -c | ssh remote "cat > dafile"
Repita com a construção de loop relevante. Por exemplo,
find -type f | while read fname ; do cat $fname | gzip -c | ssh remote "cat > $fname" ; done
... ou algo nesse sentido. Precisa configurar o acesso pkey, ou este será um exercício massivo de senha e velocidade.
EDITAR:
Sobre o assunto de uma única conexão, veja man ssh_config ControlMaster. Isso significa que você economizará a sobrecarga de negociação de 5999 dessas 6000 sessões de SSH.
EDIT2:
Haha! Eu ganho!
tar zcf - /dir/of/files | ssh remote "tar zxf - --to-command=mygzip.sh"
mygzip.sh, presente na máquina remota, é assim:
#!/bin/sh
mkdir -p "$(dirname $TAR_FILENAME)"
gzip -c > "${TAR_FILENAME}.gz"