We use cookies to understand how you interact with our site, to personalize and streamline your experience, and to tailor advertising. By continuing to use our site, you accept our use of cookies and accept our Privacy Policy.
Contact Us
Contact Us
Sign in
Sign in
Nexcess Logo

How to create SSH keys in macOS and Linux

September 11, 2019

SSH keys are a means of authenticating a user to an SSH server without using a password. Each “key” is actually a key pair consisting of a public key and a private key. Keys are more secure than passwords because they are significantly more complex.

While a password of eight characters is 72 bits long, SSH keys are often 2048 bits or longer. This longer string has many more possible permutations and therefore takes much more time to crack with a brute force attack.

If you require SSH access for multiple users, the use of SSH keys instead of individual logins can bypass many of the headaches involved in user management without violating PCI DSS. See What are the advantages of using SSH keys to control access for multiple users? for details.


The process involves generating a pair of SSH key files containing a private key and a public key. The private key is known only to the user’s computer; the public key will be known to the server. Each key is useless without the other; therefore, only individuals with both the private and the public key can gain access to the server, and the private key is never revealed to the server.

Users should take special care to not lose the private key. A lost private key cannot be replicated; therefore, the user cannot access the server until an administrator generates a new key pair. If you lose access to your server due to a lost key, contact our Support Team for assistance.

1: Create and save the SSH key files

  1. Issue the ssh-keygen command; see the example below:
    test@demo:~$ ssh-keygen -t rsa -b 4096
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/test/.ssh/id_rsa):
    Created directory '/home/test/.ssh'.
    Enter passphrase (empty for no passphrase):
  2. The keys save to the default location or, if one was specified, in a separate file. Choose one:

    1. If you do want a passphrase, type it now and hit Enter. Type the passphrase again when prompted.

    2. If you do not want a passphrase, hit Enter twice in succession without entering a passphrase.

  3. You will now see the identification fingerprint for the SSH key. This image is automatically generated.

2: Transfer the public key file to the receiving server

  • If you are a Nexcess Cloud client, log in to your Client Portal to add the key. If you cannot find your login credentials, either click Forgot Password? on the login page, or contact our 24/7 support team.

  • If you are not a Nexcess Cloud client, the easiest method-of-transfer uses the ssh-copy-id command. Run the ssh-copy-id command with the same arguments used for connecting to the server using the ssh command:
    ssh-copy-id user@hostname.com

3:Test the connection

  1. Issue the following command:
    ssh user@hostname.com
  2. Select Yes to accept the key fingerprint.

  3. Attempt to log in to the server. If ssh key authentication is functioning properly, you will log in successfully.

  4. If prompted, type the passphrase created in 1: Create and save the SSH key files.

For 24-hour assistance any day of the year, contact our support team by email or through your Client Portal.

Jason Dobry