Site: US UK AU |

How to create SSH keys in macOS and Linux

How to create SSH keys in macOS and Linux

This article explains how you can create SSH keys to restrict and manage user access to a Linux server.


This article's scope is limited to macOS and Linux. 

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.

Create and save the SSH key files

This step will create the keys required to authenticate a connection.

  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):

  1. 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 and hit Enter a second time.

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

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

Transfer the public key file to the receiving server

There are many possible methods for performing the transfer. However, all of them transfer the public key, not the private key.

The easiest method of transfer uses the ssh-copy-id command. Issue the following commands:

Run the ssh-copy-idcommand with the same arguments used for connecting to the server using the ssh command:


Test the connection

  1. Issue the following command:


  1. Select Yes to accept the key fingerprint.

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

  3. If prompted, type the passphrase created in Step 1 from the Create and save the key SSH files section.

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

Article Rating (2 Votes)
Rate this article
  • Icon PDFExport to PDF
  • Icon MS-WordExport to MS Word
Attachments Attachments
There are no attachments for this article.
Related Articles RSS Feed
Facility Access Policy (OTR)
Added on Mon, Jan 22, 2018
Colocation Access Card Request Form
Added on Tue, Oct 6, 2015
What is SOAP?
Added on Tue, Jan 6, 2015
How to request and revoke facility access - OTR
Added on Mon, Jan 22, 2018
What are the benefits of dedicated IP addresses?
Added on Thu, Jan 14, 2016
How to change SSH passwords from the CLI
Added on Thu, Feb 8, 2018
How to transfer domains
Added on Wed, Nov 23, 2016
How to decompress files in gzip
Added on Tue, Jan 6, 2015
What is the DMCA?
Added on Mon, Dec 29, 2014
How to flush memcached
Added on Thu, Apr 7, 2016