
Mercredi 02 avril 2025 à 16:48
J'ai souvent besoin d'exécuter l'équivalent de :
$ scp -r root@myserver:/foo/bar/ ./tmp/
ou l'inverse :
$ scp -r ./tmp/ root@myserver:/foo/bar/
sur des serveurs sur lesquels je n'ai pas directement accès à l'utilisateur root
par ssh.
J'accède, par exemple, à ce serveur via l'utilisateur ubuntu
.
L'utilisateur ubuntu
n'a pas accès aux fichiers que je souhaite download ou upload.
Sur le serveur, j'ai accès aux fichiers de l'utilisateur root
via sudo
.
Voici une astuce pour download des fichiers via ssh
et sudo
:
$ ssh ubuntu@myserver "sudo tar cf - -C /foo/bar/ ." | tar xf - -C ./tmp/
Et, voici une méthode pour upload :
$ tar cf - -C ./tmp/ . | ssh ubuntu@myserver "sudo tar xf - -C /foo/bar/"