J'essaie de transférer un répertoire d'un serveur distant (CentOS) vers ma machine locale (Ubuntu) par ssh. Il y a deux utilisateurs : A et B. L'utilisateur A peut se connecter au serveur distant par ssh et a un accès sudo. L'utilisateur B possède un répertoire sur le serveur distant.
Pour transférer un répertoire appartenant à l'utilisateur B en tant qu'utilisateur A, il faut utiliser sudo.
Voici ce que j'utilise actuellement pour transférer un fichier (de distant à local) :
ssh -tt userA@remote_host 'stty raw -echo; sudo cat /path/to/remote/file/owned/by/userB' > /path/to/local/file
Pour transférer un répertoire, j'ai essayé l'approche tar,
ssh -tt userA@remote_host 'stty raw -echo; sudo tar -C /path/to/remote/directory/owned/by/userB/ -czf - .' | tar -C /path/lo/local/directory -xzf -
Cependant, sur le système local, j'obtiens cette erreur :
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Qu'est-ce que je fais de mal ?