scp
is a command for sending files over SSH. This means you can copy files between computers, say from your Raspberry Pi to your desktop or laptop, or vice-versa.
First of all, you'll need to know your Raspberry Pi's IP address.
Copying files to your Raspberry Pi
Mar 31, 2020. Cyberduck is a file transfer client for Apple Mac and Microsoft Windows. Cyberduck is a fairly popular file transfer client for Apple Mac and Microsoft Windows. It supports FTP, SFTP, WebDAV, Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure & OneDrive, Google Drive and Dropbox.
Sep 11, 2014.
Copy the file myfile.txt
from your computer to the pi
user's home folder of your Raspberry Pi at the IP address 192.168.1.3
with the following command:
Copy the file to the /home/pi/project/
directory on your Raspberry Pi (the project
folder must already exist):
Copying files from your Raspberry Pi
Copy the file myfile.txt
from your Raspberry Pi to the current directory on your other computer:
Copying multiple files
Copy multiple files by separating them with spaces:
Alternatively, use a wildcard to copy all files matching a particular search with:
(all files ending in .txt
)
(all files starting with m
)
(all files starting with m
and ending in .txt
)
Filenames with spaces
Note that some of the examples above will not work for file names containing spaces. Names like this need to be encased in quotes:
-->
This article shows how to move files from your workstation up to an Azure Linux VM, or from an Azure Linux VM down to your workstation, using Secure Copy (SCP). Moving files between your workstation and a Linux VM, quickly and securely, is critical for managing your Azure infrastructure.
For this article, you need a Linux VM deployed in Azure using SSH public and private key files. You also need an SCP client for your local computer. It is built on top of SSH and included in the default Bash shell of most Linux and Mac computers and some Windows shells.
Quick commands
Copy a file up to the Linux VM
Copy a file down from the Linux VM
Detailed walkthrough
As examples, we move an Azure configuration file up to a Linux VM and pull down a log file directory, both using SCP and SSH keys.
SSH key pair authentication
SCP uses SSH for the transport layer. SSH handles the authentication on the destination host, and it moves the file in an encrypted tunnel provided by default with SSH. For SSH authentication, usernames and passwords can be used. However, SSH public and private key authentication are recommended as a security best practice. Once SSH has authenticated the connection, SCP then begins copying the file. Using a properly configured ~/.ssh/config
and SSH public and private keys, the SCP connection can be established by just using a server name (or IP address). If you only have one SSH key, SCP looks for it in the ~/.ssh/
directory, and uses it by default to log in to the VM.
For more information on configuring your ~/.ssh/config
and SSH public and private keys, see Create SSH keys.
SCP a file to a Linux VM
For the first example, we copy an Azure configuration file up to a Linux VM that is used to deploy automation. Because this file contains Azure API credentials, which include secrets, security is important. The encrypted tunnel provided by SSH protects the contents of the file.
Transfer Files Via Ssh
The following command copies the local .azure/config file to an Azure VM with FQDN myserver.eastus.cloudapp.azure.com. The admin user name on the Azure VM is azureuser. The file is targeted to the /home/azureuser/ directory. Substitute your own values in this command.
SCP a directory from a Linux VM
For this example, we copy a directory of log files from the Linux VM down to your workstation. A log file may or may not contain sensitive or secret data. However, using SCP ensures the contents of the log files are encrypted. Using SCP to transfer the files is the easiest way to get the log directory and files down to your workstation while also being secure.
The following command copies files in the /home/azureuser/logs/ directory on the Azure VM to the local /tmp directory:
The -r
flag instructs SCP to recursively copy the files and directories from the point of the directory listed in the command. Also notice that the command-line syntax is similar to a cp
copy command.