Multiple ssh hops to tar to MAC laptop.

I need to ssh into server X and then ssh into server Y and tar up a dir (files and dirs), to my MAC laptop. I previously got this from OmarFarid:

ssh username@remoteserver "tar cf - /path/to/dir" | dd of=/path/to/local/dir/mybackup.tar.

I am thinking something like:

ssh username@remoteserver1 | ssh username@remoteserver2  "tar cf - /path/to/dir" | dd of=/path/to/local/dir/mybackup.tar

But not sure. Any help will be appreciated. If by some strange web of circumstances I am right, then the confirmation is still worth 500 pts. I am under the gun on this latest project, and I appreciated you folks help.

Thanks -
Who is Participating?
TintinConnect With a Mentor Commented:
No need for two lots of tar.

You can do it via an ssh tunnel.

First set up your tunnel

ssh -L 222:serverB:22 user@serverA

then in another window, you can talk directly to serverB via the tunnel, eg:

ssh -p 222 user@localhost "tar cf - /path/to/dir" | dd of=/path/to/backup/serverB.tar

ssh user@serverA "ssh user@serverB tar -cf - /path/to/dir" | dd of=/path/to/local/dir/mybackup.tar
wotan1953Author Commented:
Hey Omar-

Thanks :

Here is what I get :'s password:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password,keyboard-interactive).
0+0 records in
0+0 records out
0 bytes transferred in 43.284073 secs (0 bytes/sec)

I doubled checked to see if password was correct, but no go:

I even tried:
ssh user@serverA "ssh serverB tar -cf - /path/to/dir" | dd of=/path/to/local/dir/mybackup.tar

That is no user on second ssh, because login name the same ... to no avail. Any idears?

Thanks Again
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

It seams that running the commands the way I described have problems in stdin redirection. The easiest way is to login to serverA via ssh ; then run

ssh user@serverB "tar cf - /path/to/dir" | dd of=/path/to/backup/serverB.tar

then logout from serverA, and run the below command on laptop

scp username@serverA:/path/to/backup/serverB.tar /path/to/dir/serverB.tar

wotan1953Author Commented:
Sweet ... this is definitely the way to go. Thanks
wotan1953Author Commented:
hey I am asking another one:

Title: copying files across servers to my Mac laptop.

Question: I need to copy extra dirs/files from an external server, to my Mac Laptop.

I was thinking something like:

ssh username@remoteserver "scp /etc/mail/aliases_03032009.txt" | dd of=/path/to/local/dir//aliases_03032009.txt
If you have direct access to the server, then you just need

scp user@remoteserver:/etc/mail/aliases_03032009.txt .
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.