PuTTY Key Generator (a.k.a. PuTTYgen)
While PuTTY is a client program for SSH (in addition to Telnet and Rlogin), it is not a port of or otherwise based on OpenSSH. Consequently, PuTTY does not have native support for reading OpenSSH's SSH-2 private key files. However, PuTTY does have a companion named PuTTYgen (an RSA and DSA key generation utility), that can convert OpenSSH private key files into PuTTY's format; allowing you to connect to Khoury servers from a Windows machine, with the added security that SSH keys provide.
PuTTYgen is a (free) open-source utility and can be downloaded from the PuTTY website. PuTTYgen is what you will use to generate your SSH keys for use in PuTTY. To start, all you need to do is download the executable files (.exe) and save them on the computer that you'll use to connect to a Khoury machine, e.g. on the desktop. You will not need to "install" PuTTYgen, because it is a standalone application.
Generating OpenSSH-compatible Keys for Use with PuTTY
To generate a set of RSA keys with PuTTYgen:
- Start the PuTTYgen utility, by double-clicking on its .exe file;
- For Type of key to generate, select SSH-2 RSA;
- In the Number of bits in a generated key field, specify either 2048 or 4096 (increasing the bits makes it harder to crack the key by brute-force methods);
- Click the Generate button;
- Move your mouse pointer around in the blank area of the Key section, below the progress bar (to generate some randomness) until the progress bar is full;
- A private/ public key pair has now been generated;
- In the Key comment field, enter any comment you'd like, to help you identify this key pair, later (e.g. your e-mail address; home; office; etc.) -- the key comment is particularly useful in the event you end up creating more than one key pair;
- Optional: Type a passphrase in the Key passphrase field & re-type the same passphrase in the Confirm passphrase field (if you would like to use your keys for automated processes, however, you should not create a passphrase);
- Click the Save public key button & choose whatever filename you'd like (some users create a folder in their computer named my_keys);
- Click the Save private key button & choose whatever filename you'd like (you can save it in the same location as the public key, but it should be a location that only you can access and that you will NOT lose! If you lose your keys and have disabled username/password logins, you will no longer be able log in!);
- Right-click in the text field labeled Public key for pasting into OpenSSH authorized_keys file and choose Select All;
- Right-click again in the same text field and choose Copy.
Save The Public Key On the Khoury Login Server
Now, you need to paste the copied public key in the file ~/.ssh/authorized_keys on your server.
- Log in to your destination server; see KB0012108: Linux at Khoury and KB0012109: What is SSH?
- If your SSH folder does not yet exist, create it manually:
chmod 0700 ~/.ssh
chmod 0644 ~/.ssh/authorized_keys
Paste the SSH public key into your ~/.ssh/authorized_keys file (see Installing and Using the Vim Text Editor on a Cloud Server):
sudo vim ~/.ssh/authorized_keys
- Tap the i key on your keyboard & right-click your mouse to paste.
- To , tap the following keys on your keyboard (in this order): Esc, :, w, q, Enter.
Create a PuTTY Profile to Save Your Server's Settings
In PuTTY, you can create (and save) profiles for connections to your various SSH servers, so you don't have to remember, and continually re-type, redundant information.
- Start PuTTY by double-clicking its executable file;
- PuTTY's initial window is the Session Category (navigate PuTTY's various categories, along the left-hand side of the window);
- In the Host Name field, enter the fully qualified domain name (FQDN) of your server or login.khoury.northeastern.edu;
- Select SSH under Protocol;
- Along the left-hand side of the window, select the Data sub-category, under Connection;
- Specify your Khoury username, when logging in to the SSH server, and whose profile you're saving, in the Auto-login username field;
- Expand the SSH sub-category, under Connection;
- Highlight the Auth sub-category and click the Browse button, on the right-hand side of the PuTTY window;
- Browse your file system and select your previously-created private key;
- Return to the Session Category and enter a name for this profile in the Saved Sessions field, e.g. firstname.lastname@example.org;
- Click the Save button for the Load, Save or Delete a stored session area.
Now you can go ahead and log in to email@example.com and you will not be prompted for a password. However, if you had set a passphrase on your public key, you will be asked to enter the passphrase at that time (and every time you log in, in the future).