The File Transfer Protocol, or FTP, is used to transfer files between a client and a server. That is, you can use FTP to copy files to and from your computer and your server.

Special FTP accounts

You can use cPanel’s FTP Accounts option to manage FTP accounts. You may not have to do so though, as two so-called “special” FTP accounts are created automatically:

  • The first account uses the same user name and password you use to log in to cPanel
  • The second account can be used to download log files

The two special FTP accounts are always linked to your cPanel account. When you change your cPanel password the password for the special accounts are automatically updated. Also, it is not possible to delete the special FTP accounts.

Creating a new FTP account

There can be good reasons why you might want to create additional FTP accounts. For instance, you might want to give your web developer access to your website files without giving him or her access to the control panel. Creating an FTP account is easy but there are a few things you need to be aware of.

Selecting the FTP Accounts option takes you a screen where you can instantly create a new account. If you are hosting just one domain (i.e. if you don’t have any addon domains) then you can simply enter a user name and password, and set the user’s home directory. If you have multiple domains you also need to select which domain the FTP user belongs to – you will be able to select the domain from a drop-down list.

Creating a new FTP user.
Image: Creating an FTP account for webdev@example.net).

cPanel automatically sets the default directory for a new FTP user. In the above example we are creating an FTP account for the user webdev@example.net, and the directory has been set to /home/example/public_html/example.net/webdev. In most cases, that is not what you want. The user wouldn’t be able access anything below the directory, which includes the public_html directory.

It is usually best to change the directory to the public_html directory. That would give the user access to the website files, but not to for instance the mail folder (which contains your emails).

Editing FTP accounts

After you have created an FTP account you will see it listed on the FTP Accounts page. There are a couple of actions you can perform on FTP accounts:

  • Change the password
  • Change the quota (that is, the amount of bandwidth the FTP user may use)
  • Delete the account
  • Download a configuration file for three common FTP clients: fileZilla, CoreFTP and Cyberduck

Viewing existing FTP accounts.
Image: managing existing FTP accounts.

When you delete an FTP account you got the option to also delete the user’s home directory. Don’t select this option if you changed the FTP user’s directory to the public_html directory. It would delete all the website files.

Configuring FTP clients

The configuration files you can download contain the settings for the FTP user. When you open the file via your FTP client it will automatically configure the account. In FileZilla, you can open the file via File > Import….

The file does not include the FTP password. When you import the file it will add the FTP account to the list of accounts. You will be prompted for the password when you connect to the server.

Also, by default the host name will be ftp.[your-domain]. That will only work if there is an A record for the ‘ftp’ subdomain that points your server. If the DNS for your domain is managed elsewhere you might want to use the server’s hostname or IP address instead.

General settings

You are not limited to using FileZilla, CoreFTP or Cyberduck; you can use any FTP client to connect to the server. The main restriction is that your FTP client will need to have support for modern TLS (encryption) standards. If your FTP client is being maintained and is up to date then that won’t be an issue. However, if do see errors messages that mention SSL or TLS, feel free to contact us and we will look into the issue.

Most FTP clients will ask for three bits of information when you create an FTP account:

  • The host name you are connecting to. This is typically the server name. Our test website is hosted on strawberry.active-ns.com, so that would be the value we need to enter here.
  • The user name. The FTP user we created is webdev@example.net. If we would connect using our main account then this would be your cPanel user name (in our case example).
  • The password. This is the password you chose when you created the FTP account. Or, if you are connecting using your main account then this is your cPanel password.

You can usually leave the port number blank. If you need to enter a port number, use port 21. The type of encryption should specify that you are using TLS. In FileZilla, you can use Require explicit FTP over TLS.

Configuring an FTP account in FileZilla.
Image: setting up our new FTP user in FileZilla.

When you first make a connection your FTP client is likely to ask if you want to trust the SSL certificate. The certificate should show the name of the server you are connecting to (in our case strawberry.active-ns.com). You normally only have to accept a certificate once.

FileZilla connected to the server.
Image: FileZilla has connected to the server.

Common FTP errors

By far the most common FTP errors are authentication failures and TLS errors. An authentication error happens when the FTP host name, user name and/or password is incorrect. If you run into an authentication error, tripple-check that the settings you entered are correct.

TLS errors are, as mentioned, often the result of not using a secure connection type. You may need to change the type of encryption in your FTP client. If you are using a legacy FTP client that doesn’t have support for TLS v1.2 then you can try using another FTP client, such as FileZilla.

There are many less common FTP errors. One thing that might be worth checking is whether or not your FTP client is using passive mode (which is the recommended setting – it can prevent firewall-related issues). Another possibility is that the server has blocked your IP address, which can happen if there have been too many authentication errors in a short period of time. Please contact us if you get stuck – we are always happy to help.