Making an ssh key
Programs have different options for the ssh public key format. We use the OpenSSH key format. It is safe to share your public key with anyone. Never share your private key!
Contents
OpenSSH (Linux, Windows Cygwin) and Terminal (OS X)
- Check for existing keys before beginning:
ls -la ~/.ssh
If there is no key you already want to use, generate a new key with:
$ ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/<user>/.ssh/id_rsa): /home/<user./.ssh/<keyname> Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/<user>/.ssh/<keyname>. Your public key has been saved in /home/<user>/.ssh/<keyname>.pub. The key fingerprint is: 20:78:b9:01:15:3a:43:60:7b:7b:55:b3:7f:3b:a5:20 The key's randomart image is: +--[ RSA 4096]----+ |.oo.o. o | |...+ . . o | | .=.= .. . | | .+.+.. . | | ... SE o . . | | . . o + | | + | | . | +-----------------+
If you use the default key filename /home/<user>/.ssh/id_rsa , ssh will try to use it automatically.
Linux Installation Instructions
If openssh is not already installed, on Debian/Ubuntu tryaptitude install openssh-clientor on Redhat/CentOS
yum install openssh-clientsor download the portable source from openssh.org and compile it. When OpenSSH is setup you can generate a key and try to login.
Windows Installation Instructions
Install cygwin from https://cygwin.com and select the openssh package.
OS X Installation Instructions
Terminal comes installed with OS X.
Key Generation
We support rsa, dsa, dss, and also ecdsa (on newer servers only). We recommend at least 2048 bits in your key (or 256 for ecdsa). We do not yet support ed25519. You can choose an alternate algorithm by using the -t flag.
Generating an SSH Key in Windows
Windows 10 has an OpenSSH client (ssh-keygen) installed by default. We recommend using this tool if possible. However if not then see instructions for PuTTY below.
Prgmr.com supports several SSH key algorithms. In order from the most to least-widely supported:
Using the Native Win 10 SSH Client
- First, verify that the Windows SSH client is installed on your computer. Press the Windows logo key on your keyboard or click on the Start Menu. Type
cmd
. Right-click on the Windows Command Prompt and selectRun as administrator
. - In the command line, type
ssh
and Enter. If the client is installed, then Windows will return a short summary of command-line options. - In the command line, enter
ssh-keygen
to use the default values (Algorithm RSA, keysize 2048 bits). To select a different algorithm and keysize, use the -t and -b options, as shown below.-
ssh-keygen -t rsa -b 4096
-
ssh-keygen -t ecdsa -b 521
-
ssh-keygen -t ed25519
-
- In all cases, Windows will return a default directory and filename under which to save the private key. If you wish to use a different name and path then enter it with the -f <filename> option, as in
ssh-keygen -f ~/<filename> -t ed25519
. (This example uses the tilde (~) notation for your Windows home directory.) - Windows then requires a password or passphrase to encrypt the keys. Use a strong password for this.
Once all the required information is entered, Windows will return the location of your public and private keys, the key hash, and other information.
Installing PuTTY
Download the PuTTY installer and install it. These are the keys for verifying the signature.
Key Generation with PuTTY
- Run PuTTYgen
- Click "Generate" to generate a key
- Enter a passphrase for the private key.
- Save the private key.
- Copy/paste the "OpenSSH authorized_keys" text to a separate public key file. The contents of this file (typically starting with ssh-rsa or ssh-dss) is what you need to use when either signing up or changing the key for a VM.
The config settings to access the management console are at Management Console#Logging in via PuTTY
Commercial SSH Clients
These are links to tutorials for the given client. We do not have personal experience with any of these clients.
- xshell (Windows Only) - use OpenSSH key format
- SecureCRT (Windows, OS X, and Linux) - use OpenSSH key format