Filezilla is a free, open source file transfer program written for Linux, MacOS X, and Windows systems. It implements several file transfer protocols, most notably SFTP via SSH. This tool allows you to securely transfer files to and from your Linode using an encrypted channel, avoiding the security problems and usability issues inherent in traditional FTP client/server systems. Filezilla can send both your login credentials and file transfers over the network securely encrypted (provided you're using SFTP), while standard FTP clients send this information as plaintext.
You'll need to make sure your VPS is running an SSH daemon (all Linodes run an OpenSSH server by default), and that you have a user account on the server before following these instructions. If you wish, you may use the root account on your Linode to perform file transfers, although you may need to change file ownership and permissions on the server after doing so.
On your desktop, click "System" -> "Administration" -> "Synaptic Package Manager" as shown below to start the package installer.
In the package manager's "Quick search" box, enter "sftp" and click the "Search" icon. A list of packages related to sftp programs will appear. Locate "filezilla" in this list and check its box to select it for installation. Click the "Apply" button to proceed.
You will be asked to confirm your installation request. Click the "Apply" button to proceed.
Filezilla and required dependency files will be installed on your system. You may close Synaptic once the install has completed.
On your desktop, click "Applications" -> "Internet" -> "Filezilla" to launch the program.
Enter your Linode's IP address in the "Host" field. Enter the account username you wish to connect as in the "Username" field. Please note that this must be a user account on your Linode; if in doubt, enter "root" to log in as the root user. Enter the account's password in the "Password" field, and enter "22" in the "Port" field. Click "Quickconnect" to initiate the file transfer session.
If this is the first time you've connected to your Linode with an SSH or SFTP program, you'll receive a warning that the host key is unknown.
This is due to the possibility that someone could be eavesdropping on your connection, posing as the server you are trying to log into. You need some "out of band" method of comparing the key fingerprint presented to Filezilla with the fingerprint of the public key on the server you wish to log into. You may do so by logging into your Linode via the AJAX console (see the "Console" tab in the Linode Manager) and executing the following command:
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
The key fingerprints should match; click "Yes" to accept the warning and cache this host key. You won't receive further warnings unless the key presented to Filezilla changes for some reason; typically, this should only happen if you reinstall the remote server's operating system. If you should receive this warning again from a system you already have the host key cached on, you should not trust the connection and investigate matters further.
When you're ready to proceed, click the "Ok" button. You'll be presented with a split view, with your local filesystem on the left and your Linode's filesystem on the right. You may transfer files by dragging and dropping them between each side.
If you'd like to use SSH keys to allow access to your Linode without the need to specify a password, you'll need to make sure you have an SSH keypair generated for your local user account. To verify this, open a terminal (click "Applications" -> "Accessories" -> "Terminal") and type the following command:
If you see a list of files including id_rsa or id_dsa, you already have keys on your workstation. If you don't see such files listed, issue the following command to create a keypair:
ssh-keygen -t rsa
Next, you'll need to copy your public key (created as id_rsa.pub) to your Linode. Issue the following commands to do so. If your files are called id_dsa and id_dsa.pub, change the command accordingly. Substitute the name of the user account you wish to log into on your Linode (or "root") for the "user" portion of the command, and substitute your Linode's IP address or domain name for the "hostname.com" portion of the command.
scp ~/.ssh/id_rsa.pub firstname.lastname@example.org:~/.ssh/uploaded_key.pub ssh email@example.com "echo \`cat ~/.ssh/uploaded_key.pub\` >> ~/.ssh/authorized_keys2"
Test the ability to log in without a password by issuing the following command:
If you're asked for a password, please double-check the preceding steps in this section. If you're logged into your Linode, you may type exit to close the SSH connection. Provided you were able to log in without entering a password, return to Filezilla and initiate a new connection. You should now be able to connect to your Linode without entering a password in the "Password" field.
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
This guide is licensed under a Creative Commons Attribution-NoDerivs 3.0 United States License.
Last edited by Amanda Folson on Monday, August 22nd, 2011 (r2406).