While I understand how to scp files to and from my server from within my home network, how can I scp a file from my server to my local machine when I am on the outside, say at Starbucks?

While I am able to scp from my local machine to my server in this scenario, I haven't figured out how to grab a file from home, using the command line. Any suggestions?


The way the question is asked is pretty confusing, but if you can copy from your local machine to the server, to go the other way just flip the command line order.

its scp [from] [to]

scp user@homeip:/path/to/file /local/path/
| improve this answer | |
  • Thanks, I'll give it a try and confirm if it worked for me. – user98496 Sep 20 '11 at 14:10
  • 1
    I think the question is more about setting up dyndns and port forwarding...he just didn't know what to ask. – RobotHumans Sep 20 '11 at 14:22
  • 1
    True, I probably don't know what to ask. I'm still learning. If you could offer further explanation about what ports I need to forward (and any info I'll need regarding dyndns) in order to achieve my goal, I'd appreciate it:-) – user98496 Sep 20 '11 at 15:31
  • Suggestion in first response did not work. Normally, when I type: "scp -r somedir me@" it works fine. However, If I try this from a public WIFI connection at say, Starbucks (and not at home), it doesn't work. What am I doing wrong? – user98496 Sep 20 '11 at 18:59
  • 6
    SOLVED: The command that works for me is: scp remoteusername@host:fileiwanttocopy /my/local/comp – user98496 Oct 19 '11 at 18:28

Copy the file "foobar.txt" from a remote host to the local host:

$ scp your_username@remotehost.edu:foobar.txt /some/local/directory

Copy the file "foobar.txt" from the local host to a remote host:

$ scp foobar.txt your_username@remotehost.edu:/some/remote/directory

Copy the directory "foo" from the local host to a remote host's directory "bar":

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Copy the file "foobar.txt" from remote host "rh1.edu" to remote host "rh2.edu":

$ scp your_username@rh1.edu:/some/remote/directory/foobar.txt your_username@rh2.edu:/some/remote/directory/

Copying the files "foo.txt" and "bar.txt" from the local host to your home directory on the remote host:

$ scp foo.txt bar.txt your_username@remotehost.edu:~

Copy the file "foobar.txt" from the local host to a remote host using port 2264:

$ scp -P 2264 foobar.txt your_username@remotehost.edu:/some/remote/directory

Copy multiple files from the remote host to your current directory on the local host:

$ scp your_username@remotehost.edu:/some/remote/directory/\{a,b,c\} .

$ scp your_username@remotehost.edu:~/\{foo.txt,bar.txt\} .

For More Information: Secure Copy

| improve this answer | |
  • And all this requires that you have sshd running - everybody knows that, eh... or not. – Hannu Dec 15 '17 at 17:15

If you wanted to secure copy to a remote location such as Dropbox or GoogleDrive then create an account with https://couchdrop.io then link your storage provider.

From there simply,

scp <filename> couchdrop-username@couchdrop.io:/Dropbox etc, if you then want to pull a file from the cloud then just reverse the two statements so;

scp couchdrop-usernmae@couchdrop.io:/Dropbox/filename ~/ - this will pull the file down to your chosen directory

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.