

Thus, by tunneling backwards over the existing ssh connection, it doesn't matter that ComputerA is behind an NAT firewall. All connections to port 2222 on ComputerB get forwarded to port 22 (default ssh port) on ComputerA. We are indeed telling scp to pass the file back to ComputerB, but to port 2222. Now from ComputerB, you can issue the scp command in the following manner to copy files from ComputerB -> ComputerA where ComputerAUser is your username on ComputerA: scp -P 2222 /path/to/file/on/ComputerB happening here? It looks like we are simply telling ComputerB to send the file back to itself because we're passing localhost instead of ComputerA. We'll use this port to reverse-tunnel back to ComputerA from ComputerB.
#Ssh copy a direcoty free#
ssh -R 2222:localhost:22 where ComputerBUser is the username for the account on ComputerB being authenticated and 2222 is a free port on ComputerB. When establishing the ssh connection ComputerA -> ComputerB, do so with the -R option in the following manner. In this case, you can configure your ssh tunnel from ComputerA -> ComputerB such it can tunnel reverse connections as well.

However, you may not always have access to make these kinds of changes. In this scenario, you would typically need to configure port-forwarding in the NAT firewall. To use this solution, run from ComputerB: scp /path/to/file/on/ComputerB 2: If ComputerA is behind an NAT firewall It requires you to have an ssh server (and client) installed on both ends (computerA and computerB). This is a swift and easy solution, combining scp and ssh (scp performs a secure copy using ssh protocols). Scenario 1: If ComputerA is not behind an NAT firewall

ComputerB is a remote machine that you can access via ssh. Say you have two computers, ComputerA and ComputerB. I'm posting a separate solution altogether to account for the situation where it may be difficult because of network structure (think NAT firewall) to simply ssh back into the local system. Nullmeta's answer is completely valid, and perhaps nullmeta will edit to provide the clarification you're looking for.
