Skip to main content

FTP Access via cPanel: Creating Accounts and Connecting

Hosting & cPanel · 05.06.2025 · 5 min read
Illustration for “FTP Access via cPanel: Creating Accounts and Connecting”

FTP (File Transfer Protocol) lets you upload and download files to hosting. Through cPanel you can create separate FTP accounts for different directories — useful for developers and designers who should not get full access to the whole account.

Creating an FTP account in cPanel

  1. Log in to cPanel (usually yourdomain.com/cpanel)
  2. Open the Files → FTP Accounts section
  3. Fill in the form:
    • Login — the username (for example, developer)
    • Password — at least 12 characters, use a generator
    • Directory — the folder to grant access to (for example, /public_html/mysite)
    • Quota — a space limit (or "Unlimited")
  4. Click Create FTP Account

Connecting via FileZilla

Download the free FileZilla client from the project's official site. Connection settings:

ParameterValue
Hostftp.yourdomain.com
Userdeveloper@yourdomain.com
Passwordyour password
Port21 (FTP) or 22 (SFTP)

Common connection error

The most common error on first connection is an incorrectly entered login: in cPanel the FTP login usually includes the whole domain, not just the username:

Response: 530 Login authentication failed
Error: Critical error: Could not connect to server

The fix is to enter the login in full as developer@yourdomain.com, not just developer. The second common problem is that files do not transfer even though the connection is established:

Status: Connected
Command: LIST
Error: 425 Unable to build data connection: Operation not permitted

This is a conflict between FTP's active/passive mode and a firewall on the client or provider side. The fix is to open Settings → Connection → FTP → Transfer Mode in FileZilla and select Passive mode instead of active.

FTP or SFTP

CriterionFTPSFTP
Port2122
EncryptionNone (password sent in the clear)Yes, all traffic is encrypted
Firewall traversalOften needs passive mode configurationA single port, usually already open for SSH
Key-based authorizationNot supportedSupported
RecommendationOnly for legacy clientsDefault for new connections

On the server side, plain FTP in passive mode uses not only port 21 but also a range of extra ports for the data transfer (usually configured by the administrator as the "Passive Ports Range" in WHM). If the hosting restricts outbound connections with a client-side firewall more tightly than that range is open, the 425 error keeps happening even with passive mode enabled — the only reliable fix then is switching to SFTP, which uses the same single port 22 for both commands and data.

Managing FTP accounts

In cPanel → FTP Accounts you can:

  • Change the password — the Change Password button
  • Change the quota — the Change Quota button
  • Delete the account — the Delete button
  • Open the FTP session manager (view active connections)

Restricting access by directory

An FTP account created with the directory /public_html/mysite physically cannot see the rest of the account's file system — trying to go up with cd .. hits that user's own "root", even though other folders physically exist higher up on disk:

mysite/          ← root for FTP user developer
├── index.php
└── assets/

../otherdomain/  ← exists physically, but developer cannot see it

This is built-in cPanel isolation (chroot), not a separate setting — it is always active for additional FTP accounts, but it does not apply to the main FTP account with full access. If a quota is set on the FTP account and it is exhausted, uploading new files stops with a "550 Disk quota exceeded" error — this is a limit on that specific FTP user, not the plan's overall quota, and it is raised separately through the same account creation form.

When FTP does not fit

  • You need version control and a history of file changes — FTP just overwrites a file, with no diff and no way to roll back, so a Git deploy is needed instead
  • Development happens on a public Wi-Fi network — plain FTP sends the password in the clear and it is easy to intercept, so SFTP or a VPN is mandatory here
  • You need to sync a large number of small files regularly — FTP is slower than rsync over SSH because it has no delta copying
  • You need automatic deployment on a push to the repository — FTP has no hooks or CI/CD integration, so SSH access or Git Version Control in cPanel is needed instead

Verifying the result

# Quick connection check from the terminal
ftp ftp.yourdomain.com
# Enter login developer@yourdomain.com and the password
# If you see the ftp> prompt, the connection works

Never use the main FTP account (with full access) to hand off to a client or contractor — create a separate account with a restricted directory. More on file permissions after upload is in the article SSH access on cPanel hosting.

Was this article helpful?
← Back to Knowledge Base Ask Support