How to Use SSH Private Keys for SFTP

Before connecting to an SFTP remote server, you’ll need some connection information:

  • The address of the server, and its port number if it uses a non-standard one.
  • Your user ID for the server. This might be different to your usual login for the site.
  • Some servers won’t require a login, and will instead allow an anonymous connection (typically for downloads).
  • If you have a user ID, your password for the server if that is required. Like your user ID, this might be different to your usual password for the site.

There are three mechanisms for use of the FileZilla client with SSH2 keys:

  1. In the profile settings in the Site Manager of the FileZilla Pro client. If the SFTP Protocol is specified, it is possible to specify the Logon Type as “Key File” and specify the location of the private key file (in .ppk or .pem format – see below for conversion options from other formats.) The user is prompted for the key file’s password if necessary.
  2. In the Edit – Settings menu of the FileZilla Pro client, you can add the key file under Connection – SFTP, and FileZilla Pro can then use the public key authentication in the site manager with the ‘Interactive’ Logontype on connection. Note: Importing a site’s public key is not supported.
  3. (Windows only) Using PuTTY tools. To allow the use of RSA/DSA key files with FileZilla Pro, you’ll need two tools from PuTTY: Pageant and (assuming your key file isn’t already in PPK format) PuTTYgen. If your key file is already in PuTTY’s PPK format you can skip this paragraph. However if your key is in OpenSSH format, you first need to convert it to PuTTY’s PPK format. To do this, launch PuTTYgen and from the “Conversions” menu, select the “Import key” option. Select your key and follow the prompts to enter your pass phrase. Save your private key.
    Now run Pageant. In your system tray, you’ll see the Pageant icon appear. Right-click the icon and select “Add Key” and select your private key (PPK) file. Follow the prompt to enter your pass phrase and you’re done.
    Now simply launch FileZilla Pro and connect to your server using SFTP using SSH2 with a username and an empty password. Don’t forget to close pageant when you’re done.

Alternative method

FileZilla Pro supports the standard SSH agents. If your SSH agent is running, the SSH_AUTH_SOCK environment variable should be set. (Note, the “Normal” logon type should be set for the site in order to use the SSH agent socket.)

On a Mac

If for some reason you are not using ssh-agent and on a Mac, you don’t need to perform a ssh key conversion. Import your key via Settings and then use “Normal” logon type in your site connection definition. The imported key will get used.
The following instructions assume you have a working SSH configuration which allows you to ssh to the same host without a password. They are adapted from a thread on superuser.com for your convenience:

  1. In FileZilla Pro->Settings.. select Connection->SFTP
  2. Press the Add key file… button
  3. Press Command-Shift-G to bring up a path selection window and type “~/.ssh”
  4. Select the “id_rsa” key file and click Open (this imports the key)
  5. Click OK to close the Settings dialog
  6. Open File->Site Manager…
  7. Select the site with which you want to use the key
  8. Choose Protocol “SFTP” and select Logon Type “Normal”. Don’t worry about a password if you key file doesn’t have a password, if it has one set it here.
  9. Click Connect and you’ll see your files

Watch our tutorial showing how to connect to a SFTP with Key File.