SSH: Secure Copy (scp
)¶
What Is That?¶
Conceptually like
cp
Remote copy
Via SSH protocol ⟶ encrypted
Copy Single File From Local To Remote¶
Copy /etc/passwd
to jfasch
’s home directory on home.com
(non-interactively logged in as jfasch
). This results in a file
~jfasch/passwd
on the remote machine.
$ scp /etc/passwd jfasch@home.com:
Same, but changing the name to my-passwd
(effectively using a
destination path relative to jfasch
’s home directory). This
results in a file ~jfasch/my-passwd
on the remote machine.
$ scp /etc/passwd jfasch@home.com:my-passwd
Same, but changing the destination to /tmp/my-passwd
(an absolute
path on the remote machine). This results in a file
/tmp/my-passwd
on the remote machine.
$ scp /etc/passwd jfasch@home.com:/tmp/my-passwd
Copy Single File from Remote To Local¶
Likewise, scp
can copy files from remote to local. (Again, using
the /etc/passwd
file, but this time the remote one.) This will
result in a file ~jfasch/passwd
on the local machine.
$ scp jfasch@home.com:/etc/passwd .
Same, but changing the name.
$ scp jfasch@home.com:/etc/passwd /tmp/my-passwd
(You get the point)
Copy An Entire Directory Tree (-r
)¶
Like its ancestor, cp
, scp
supports the -r
option to copy
directories recursively.
Copy all my documents (in ~/Documents
) to the remote machine,
under the remote name ~/MyDocuments
.
$ scp -r ~/Documents jfasch@home.com:MyDocuments
Copy Multiple File From Here To There¶
Like cp
, scp
can copy multiple files. In this case the
single destination must be a directory, obviously.
$ scp /etc/passwd /etc/group ~/.bashrc jfasch@home.com:MyDocuments
Also recusively,
$ scp -r ~/Downloads ~/Pictures ~/.bashrc jfasch@home.com:MyDocuments
Copy From One Remote To A Different Remote¶
scp
is not restricted to copying to or from the local machine. You
can use the local machine to copy from one remote machine to another
remote machine.
Here, I use my laptop on the train to copy a project tree from home to a customer.
$ scp -r jfasch@home.com:project joerg.faschingbauer@customer.com:
Note
To save mobile bandwidth though, it would be more appropriate to
not use the laptop as a mediator. Realistically, one would use
remote command execution on home.com
. For example, to transfer
the project
to customer.com
directly,
$ ssh jfasch@home.com "scp project joerg.faschingbauer@customer.com:"
More Options¶
Option |
Descriptiotn |
---|---|
|
Recursive copy |
|
Preserve access timestamps and permissions |
|
Use a port number other than the default, 22. For example,
|