How to Transfer Files to Your VPS Using FileZilla via SFTP

Learn how to connect FileZilla to your VPS via SFTP, upload files securely, and fix the most common connection and permission errors.

When you provision a VPS, at some point you’ll need to send files from your local machine to the server — whether that’s a website’s source code, a database backup, or project assets. FileZilla handles this with a graphical interface that works on Windows, macOS, and Linux without requiring any terminal commands.

This tutorial is aimed at beginners: we’ll use SFTP (SSH File Transfer Protocol), the secure standard that comes enabled on any modern Linux VPS. You don’t need to install anything on the server — just use the SSH credentials you already have.

Prerequisites

What you need before starting

An active Linux VPS (Ubuntu, Debian, AlmaLinux, etc.) with SSH running on port 22. You need the server IP, a username, and a password — or an SSH key if that’s how you configured access. A Windows, macOS, or Linux computer to install FileZilla on.

If you’ve never connected to the VPS via SSH before, it’s worth doing that at least once first — so you confirm the credentials work and port 22 is reachable. In a terminal: ssh user@your-server-ip.

The connection details you’ll use follow this format:

Host VPS IP (e.g. 45.10.20.30)
Protocol SFTP
Port 22
Username root or your user

Installing FileZilla

FileZilla Client is free and open-source. Be careful to download it from the official source — third-party sites frequently bundle adware with the installer.

01

Go to https://filezilla-project.org/ and click Download FileZilla Client (not the Server, which is a different product). The site detects your operating system automatically.

On Debian/Ubuntu-based Linux distributions, you can also install it through the package manager:

sudo apt update
sudo apt install -y filezilla
02

Run the installer and follow the standard steps. On Windows, in the “Choose Components” screen, you can uncheck optional components like desktop icons if you don’t want them.

Watch the Windows installer carefully

The official FileZilla installer for Windows sometimes offers additional software during setup (browsers, antivirus tools). Read each screen and decline those offers — they are not part of FileZilla.

03

Open FileZilla. The interface has four main areas: the quick connect bar at the top, local files on the left, remote files on the right (empty until connected), and a log area at the bottom showing what’s happening.

Connecting to the VPS

You can connect in two ways: via Quick Connect (fast for one-off use) or the Site Manager (recommended for recurring use, since it saves your credentials).

Option 1: Quick Connect

01

In the toolbar at the top of FileZilla, fill in the fields:

  • Host: sftp://YOUR_IP (the sftp:// prefix forces the secure protocol)
  • Username: your SSH user (usually root or the user you created)
  • Password: your SSH password
  • Port: 22

Click Quickconnect.

02

On the first connection, FileZilla shows a dialog asking whether you trust the host key. This is expected — it’s the same prompt SSH shows when you connect for the first time.

Check Always trust this host and click OK. FileZilla stores the key and won’t ask again on future connections.

Option 2: Site Manager

For recurring connections, saving the configuration saves time and avoids typing your password every session.

01

Go to File → Site Manager (or Ctrl+S). Click New Site and give it a descriptive name (e.g., “Production VPS”).

02

On the General tab, fill in:

  • Protocol: SFTP - SSH File Transfer Protocol
  • Host: VPS IP (no sftp:// here, since the protocol is set above)
  • Port: 22 (leave blank to use the default)
  • Logon Type: “Ask for password” (more secure) or “Normal” (saves the password)
  • User: your SSH username

Click Connect.

Use an SSH key instead of a password

If you’ve already set up SSH key authentication on the VPS, change Logon Type to “Key file” and point it to your private key file (usually ~/.ssh/id_rsa or ~/.ssh/id_ed25519). It’s more secure and doesn’t require typing a password.

Transferring Files

Once connected, the right panel shows the server’s files. By default you land in the user’s home directory — /root for the root user, or /home/your-user for other accounts.

In the left panel, navigate to the directory containing the files on your local computer.

Uploading files

01

Select the files or folders in the left panel (local computer). Use Ctrl+click to select multiple items, or Ctrl+A to select everything in the current folder.

02

Drag the selection to the right panel (VPS server), or right-click and choose Upload.

The transfer queue appears in the bottom panel, showing progress, speed, and pending files. You can keep adding more files to the queue while a transfer is in progress.

Downloading files

The process is the reverse: select files in the right panel (VPS server) and drag them to the left (local computer), or right-click and choose Download.

File overwrite behavior

If a file with the same name already exists at the destination, FileZilla will ask what to do. Read carefully — choosing “Overwrite” without thinking can destroy work. Check “Apply to current queue only” to avoid affecting future operations.

Verifying the Transfer

After transferring, confirm on the server that the files arrived intact. Connect via SSH and run:

ls -lah /path/to/files

The output shows file size, date, and permissions. Compare the size against the original — if they match, the transfer completed correctly.

For critical files (database backups, for example), verify the MD5 or SHA256 hash on both sides:

# On the server
sha256sum file.sql

# On your computer (Linux/macOS)
shasum -a 256 file.sql

The hashes must be identical. If they differ, the file was corrupted during transfer — redo it.

Troubleshooting

Error: “Connection refused” or “Could not connect to server”

Port 22 is blocked or the SSH service is not running. Try connecting via terminal first to confirm SSH is reachable. If the server’s firewall is blocking your IP, add an allow rule before retrying. On managed VPS plans, check whether an external firewall is configured in the control panel.

Error: “Permission denied” when uploading files

Your user doesn’t have write access to the destination directory. This is common when trying to upload to /var/www/html while logged in as a non-root user. Solutions:

# On the server, change the directory owner
sudo chown -R your-user:your-user /var/www/html

Alternatively, transfer files to your home directory first (/home/your-user) and then move them with sudo mv over SSH.

Connection drops during large transfers

The SSH server disconnects idle sessions. In FileZilla, go to Edit → Settings → Connection → FTP and enable Send keep-alive commands. For SFTP this rarely happens, but if it does, set ClientAliveInterval 60 in the server’s /etc/ssh/sshd_config.

Files with special characters arrive corrupted

This is typically an encoding issue. Go to Site Manager → Charset and select Force UTF-8. Modern Linux servers use UTF-8 by default.

Next Steps

With FileZilla configured, the natural next topics are:

  • How to generate and use SSH keys to eliminate passwords and improve security
  • Basic rsync commands for incremental synchronization (faster than FTP for recurring deploys)
  • How to set correct file permissions (chmod, chown) for web server files
  • Automating deploys with Git instead of transferring files manually

If you’re pushing a site to production, a Hostini VPS comes with SSH configured and root access enabled — point FileZilla at the IP from your activation email and you’re ready to go.

Frequently asked questions

Can I edit files directly on the server using FileZilla?

Yes. Right-click a file in the remote panel and choose "View/Edit". FileZilla downloads the file, opens it in the configured editor, and automatically uploads the modified version when you save. Set the default editor under Edit → Settings → File Editing.

What's the difference between SFTP, FTP, and FTPS?

FTP is the legacy protocol with no encryption — avoid it. FTPS is FTP with SSL/TLS layered on top, which requires a certificate and server-side configuration. SFTP is a completely different protocol that runs over SSH on port 22 — it needs no additional setup beyond SSH and is the recommended option for any Linux VPS.

Does FileZilla store my password in plain text?

By default, yes — the sitemanager.xml file stores passwords in plain text or base64 (not encryption). To avoid this, use "Logon Type: Ask for password" in the Site Manager, or enable a master password under Edit → Settings → Interface → Passwords, which encrypts all saved credentials.

Why is my transfer speed so slow?

SFTP has encryption overhead that limits throughput — on a good connection, expect 5 to 20 MB/s. For large transfers, consider using rsync over SSH or compressing files first (tar + gzip) and sending a single archive. Latency between your machine and the server also matters: a VPS and client in the same region will always be faster than a cross-continental connection.

Can I connect using an SSH key instead of a password?

Yes, and it's more secure. In the Site Manager, change "Logon Type" to "Key file" and point it to your private key (`~/.ssh/id_rsa` or `~/.ssh/id_ed25519`). If the key has a passphrase, FileZilla will prompt for it at connect time. The corresponding public key must already be in `~/.ssh/authorized_keys` on the server.

Does FileZilla work with a VPS behind NAT or a dynamic IP?

Yes, as long as you can reach the VPS via SSH — whether through a public IP, IPv6, a tunnel, or dynamic DNS. FileZilla accepts hostnames in the Host field, so if you have a domain pointing to the server (even via DDNS), you can use the hostname instead of the IP.

Next steps Ryzen cloud with NVMe storage and always-on DDoS protection.Go live on a Hostini VPS →
Was this tutorial helpful?
Chat on WhatsApp