Oracle Cloud Infrastructure Documentation

Managing Key Pairs on Linux Instances

Instances launched using Oracle Linux, CentOS, or Ubuntu images use an SSH key pair instead of a password to authenticate a remote user (see Security Credentials). A key pair consists of a private key and public key. You keep the private key on your computer and provide the public key every time you launch an instance.

When you connect to an instance using SSH, you provide the path to the key pair file in the SSH command. You can have as many key pairs as you want, or you can keep it simple and use one key pair for all or several of your instances.

To create key pairs, you can use a third-party tool such as OpenSSH on UNIX-style systems (including Linux, Solaris, BSD, and OS X) or PuTTY Key Generator on Windows.

Prerequisites

If you're using a UNIX-style system, you probably already have the ssh-keygen utility installed. To determine if it's installed, type ssh-keygen on the command line. If it's not installed, you can download OpenSSH for UNIX from http://www.openssh.com/portable.html and install it.

If you're using a Windows operating system you will need PuTTY and the PuTTY Key Generator. Download PuTTY and PuTTYgen from http://www.putty.org and install them.

Creating an SSH Key Pair on the Command Line

  1. Open a shell or terminal for entering the commands.
  2. At the prompt, enter ssh-keygen and provide a name and passphrase when prompted.

    The keys will be created with the default values: RSA keys of 2048 bits.

Alternatively, you can type a complete ssh-keygen command, for example:

ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>

The command arguments are shown in the following table:

Argument Description
-t rsa Use the RSA algorithm.
-N "<passphrase>"

A passphrase to protect the use of the key (like a password). If you don't want to set a passphrase, don't enter anything between the quotes.

A passphrase is not required. You can specify one as a security measure to protect the private key from unauthorized use.

-b 2048

Generate a 2048-bit key. You don't have to set this if 2048 is acceptable, as 2048 is the default.

A minimum of 2048 bits is recommended for SSH-2 RSA.

-C "<key_name>" A name to identify the key.
-f <path/root_name> The location where the key pair will be saved and the root name for the files.

Creating an SSH Key Pair Using PuTTY Key Generator

  1. Find puttygen.exe in the PuTTY folder on your computer, for example, C:\Program Files (x86)\PuTTY. Double-click puttygen.exe to open it.
  2. Accept the default key type of SSH-2 RSA and set the Number of bits in a generated key to 2048 if it is not already set.

    PuTTY Key Generator Dialog Box

  3. Click Generate.
  4. Move your mouse around the blank area to generate random data in the key, as shown below.

    (The red line in the following image is for illustration purposes only. It doesn't appear in the generator pane as you move the mouse.)

    Putty Key Generator showing random data generator

  5. The generated key appears under Public key for pasting into OpenSSH authorized_keys file.

    Putty Key Generator showing the generated public key

  6. The Key comment is generated for you, including the date and time stamp. You can keep the generated key comment or overtype it with your own more descriptive comment.
  7. Leave the Key passphrase field blank.
  8. Click Save private key and then click Yes in the prompt about saving the key without a passphrase.

    The key pair is saved in the PuTTY Private Key (PPK) format, which is a proprietary format that works only with the PuTTY tool set.

    You can call the key anything you want, but use the ppk file extension, for example, mykey.ppk.

  9. Select all of the generated key that appears under Public key for pasting into OpenSSH authorized_keys file, copy it using Ctrl + C, paste it into a text file, and then save the file in the same location as the private key.

    (Do not use Save public key because it does not save the key in the OpenSSH format.)

    You can call the key anything you want, but for consistency, use the same name as the private key and a file extension of pub, for example, mykey.pub.

  10. Write down the names and location of your public and private key files. You will need the public key when launching an instance. You will need the private key to access the instance via SSH.

Now that you have a key pair, you're ready to launch instances as described in Creating an Instance.