wiki:faq/public-private-key-generation

Version 1 (modified by Jamie McClelland, 16 years ago) (diff)

--

How can I login to my primary host server without having to enter the server password

Normally, when you login to our servers using either secure shell or Secure FTP, you need to provide a username and the password for that username. Although this information is passed to our server in an encrypted form, it is still cumbersome to remember yet another password and less than ideal to have to send your password over the Internet every time you want to login.

An alternative way to login to your server is to generate a public key and a private key (keys, in this sense, are simply small text files containing a lot of characters that appear random). When generating a public and private key, you will be asked to come up with a password to protect your private key. Then, copy your public key to the server. Once your public key is in place, you can secure shell or Secure FTP into the server without needing to enter your user's server password. Instead, you will be prompted for your private key password and if you provide the proper private key password, you will be allowed into your account.

Using this method - you could copy your public key to multiple accounts and every time you login, you only need to enter your private key password - not needing to remember all the other server passwords.

If you are using a Linux or Mac OS X computer, you can easily generate a private and public key by opening your terminal (on a Mac it is in Applications -> Utilities, on Linux computer look in your Accessories or Utilities menu). Here's an example of me generating my keys. You can do the same by simply typing the first line below:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/guest/.ssh/id_rsa): 
Created directory '/home/guest/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/guest/.ssh/id_rsa.
Your public key has been saved in /home/guest/.ssh/id_rsa.pub.
The key fingerprint is:
a2:83:b2:5d:f3:8c:e4:58:09:a1:96:77:0a:5b:b8:34 guest@liberace

Now that you have a public key, you will want to copy it to the server on which you want to use it. With the following command replace USER with your username and SERVER with your server name, like malcolm.mayfirst.org:

scp .ssh/id_rsa.pub USER@SERVER

Now, create a directory on the server on which you want to use your key and add your key to the authorized_keys file:

ssh USER@SERVER "mkdir .ssh; cat id_rsa.pub >> .ssh/authorized_keys"

Congratulations. Now, whenever you want to secure shell or secure FTP into your site, you will be prompted for your private key password rather than your server password.