Help Running your server First steps
Move files to and from your server
Copy files with scp, keep folders in step with rsync, or drag and drop with an SFTP app such as WinSCP, FileZilla or Cyberduck.
Files move over SSH, with the same password or key. Nothing to install on the server, no extra port to open.
| Tool | Best for | Needs |
|---|---|---|
scp | One file or folder, once | Nothing extra |
rsync | Copying the same folder again and again | rsync on both ends |
| An SFTP app | Seeing the files and dragging them | WinSCP, Cyberduck or FileZilla |
Run these on your own computer. A short name from ~/.ssh/config, such as web-01, works in place of [email protected]: see Make an SSH key and use it.
Copy a file with scp#
scp works like cp, with user@address: in front of the side that's on the server.
Windows
Upload a file from your Desktop to your home folder on the server:
scp $env:USERPROFILE\Desktop\site.zip [email protected]:~/Download a file from the server to your Downloads folder:
scp [email protected]:~/backup.tar.gz $env:USERPROFILE\Downloads\Copy a whole folder with -r:
scp -r $env:USERPROFILE\Desktop\site [email protected]:~/macOS
Upload a file from your Desktop to your home folder on the server:
scp ~/Desktop/site.zip [email protected]:~/Download a file from the server to your Downloads folder:
scp [email protected]:~/backup.tar.gz ~/Downloads/Copy a whole folder with -r:
scp -r ~/Desktop/site [email protected]:~/Linux
Upload a file to your home folder on the server:
scp ~/site.zip [email protected]:~/Download a file from the server to your Downloads folder:
scp [email protected]:~/backup.tar.gz ~/Downloads/Copy a whole folder with -r:
scp -r ~/site [email protected]:~/Keep a folder in step with rsync#
rsync only sends what changed, and an interrupted copy carries on when you run it again. Install it on the server:
Ubuntu / Debian
sudo apt install -y rsyncAlmaLinux / Rocky
sudo dnf install -y rsyncmacOS and Linux have it already. On Windows, use WSL, or WinSCP's Synchronize.
Send a folder to the server:
rsync -avz --progress ~/site/ [email protected]:/var/www/example.com/-akeeps permissions and times, and copies folders inside folders.-vlists what it sends,-zcompresses it on the way.- The slash at the end of
~/site/matters: it means "what's in the folder". Without it, you'd get/var/www/example.com/site/.
To make the server's copy match yours exactly, add --delete. Try --dry-run first, which changes nothing:
rsync -avz --delete --dry-run ~/site/ [email protected]:/var/www/example.com/Drag and drop with an SFTP app#
WinSCP (Windows), Cyberduck (macOS, Windows) or FileZilla (all three) show your computer on one side and the server on the other. Set up a connection with:
| Setting | Value |
|---|---|
| Protocol | SFTP, not FTP |
| Host | 203.0.113.10 |
| Port | 22 |
| Username | alex |
| Password or key | The password, or id_ed25519 from your .ssh folder |
In WinSCP, choose the key under Advanced, SSH, Authentication, and it offers to convert it. FileZilla takes it as it is, under Settings, SFTP. Trust the server's key the first time, as with SSH.
You can also use SFTP from a terminal on any of the three systems:
sftp [email protected]Inside, put file uploads, get file downloads, ls and cd look around on the server, and exit leaves.
"Permission denied" when uploading#
alex can only write where alex may. A folder like /var/www/example.com belongs to root until you hand it over. On the server:
sudo chown -R alex:alex /var/www/example.comDon't log in as root instead: after Secure a new server it can't, which is how it should be.
Still stuck? Open a ticket and say which guide you followed.