# Configure SSH Key-Based Authentication on a Linux

## Connecting from a Linux Host

1. Log into the source Linux host
2. Run the following command in a terminal window
   # generate a new ssh key pair
   ssh-keygen -t rsa
3. Press enter to accept the default location
4. Optionally, set a password for the key pair
   NOTE: If you don't provide a password, anyone with the key and access to the target host can connect using the key. Proceed with caution
5. Continue with the following command
   # output the public key
   cat ~/.ssh/id_rsa.pub
6. Copy the output ssh-rsa public key to the clipboard
7. Log into the target Linux machine
8. Run the following command in a terminal window
   # create .ssh directory
   mkdir ~/.ssh -p
   # edit the authorized_keys file
   nano ~/.ssh/authorized_keys
9. Paste the copied public key to the bottom of the file
10. Press CTRL+O, Enter, CTRL+X to write the changes
11. Back on the source Linux device, connect to the Linux target using ssh (ie ssh username@hostname)
12. Type yes and press Enter the first time connecting with a new public key to accept the connection

## Connecting from a Windows Host

1. Log into the Windows host
2. Right click the Start menu > Run > Type cmd > Press Enter
3. Run the following command in the command prompt
   # generate a new ssh key pair
   ssh-keygen -t rsa
4. Press enter to accept the default location
5. Optionally, set a password for the key pair
   NOTE: If you don't provide a password, anyone with the public key and access to the target host can connect using the key
6. Continue with the following command
   # output the public key
   type %userprofile%\.ssh\id_rsa.pub
7. Copy the output ssh-rsa public key to the clipboard
8. Log into the target Linux machine
9. Run the following command in a terminal window
   # create .ssh directory
   mkdir ~/.ssh -p
   # edit the authorized_keys file
   nano ~/.ssh/authorized_keys
10. Paste the copied public key to the bottom of the file
11. Press CTRL+O, Enter, CTRL+X to write the changes
12. Back on the Windows device, connect to the Linux target using ssh (ie ssh username@hostname)
13. Type yes and press Enter the first time connecting with a new public key to accept the connection