Eu acredito que você poderia fazer algo assim:
$ cat archive.tar.gz | ssh server2 "tar zxvf -"
Se você precisa controlar o diretório de onde é extraído para o server2:
$ cat archive.tar.gz | ssh server2 "cd /path/to/dir; tar zxvf -"
Solaris
Considerando que você está no Solaris, sua versão do tar provavelmente não incluirá nenhum dos recursos de compactação que o GNU tar oferece. Não tenha medo, você ainda pode fazer esse comando, só precisamos decompor o cat archive.tar.gz
em um comando que pode primeiro descompactar o tarball.
Algo como isso deve ser feito:
$ cat archive.tar.gz | ssh server2 "(cd /some/dir; gunzip | tar xf -)"
Ou isto:
$ gzip -dc < sample.tar.gz | ssh server2 "cd /path/to/dir; tar xvf -"
Ou isto:
$ gunzip sample.tar.gz | ssh server2 " cd /path/to/dir; tar xvf -"