I have a group of servers all properly configured with SSH agent forwarding. It is a typical bastion server style configuration where the only machine you can connect to from the outside is server A. From server A you can use agent forwarding to connect to servers B, C, D, etc. It is all working perfectly.
Sometimes I want to copy a file from my local machine to server B. In order to do this I have to first scp the file to server A. Then ssh to server A and scp the file to server B. Then I delete the file from server A.
Is there a way to copy the file directly from my computer to server B via server A in just one command executed on my local machine?
Best Answer
If your sshd is configured to allow TCP forwarding then you can set up a tunnel from your computer to B via A and then use it to copy things through. Create the tunnel
-f
background the ssh command so you get your terminal back to use.-L 2050:B22
bind localhost port 2050 to host B port 22-N
do not execute a remote command.then to copy from your computer to B
EDIT: If you use
Then you will be told the PID of the ssh command when it backgrounds.