Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Add multiple SSH keys to the authorized_keys file to enable SSH authentication when connecting to a server.

Step 1: Generate first ssh key Type the following command to generate your first public and private key on a local workstation. Next provide the required input or accept the defaults. Please do not change the filename and directory location.

workstation 1 $ ssh-keygen -t rsa

Finally, copy your public key to your remote server using scp

workstation 1 $ scp ~/.ssh/

Step 2: Generate next/multiple ssh key

  1. Login to 2nd workstation
  2. Download original the authorized_keys file from remote server using scp:
workstation 2 $ scp ~/.ssh
  1. Now create the new pub/private key:
workstation 2 $ ssh-keygen -t rsa
  1. Now you have new public key. APPEND this key to the downloaded authorized_keys file using cat command:
workstation 2 $ cat ~/.ssh/ >> ~/.ssh/authorized_keys
  1. Finally upload authorized_keys to remote server again:
workstation 2 $ scp ~/.ssh/authorized_keys

You can repeat step 2 for each user or workstations for remote server.

Step 3: Test your setup Now try to login from Workstation 1, 2 and so on to remote server. You should not be asked for a password:

workstation 1 $ ssh
workstation 2 $ ssh
Copy link

vadorvatsal commented Sep 14, 2020

Thanks for sharing. Clear and precise answer.

Copy link

vadorvatsal commented Sep 14, 2020

How does scp work without ssh key(public key) added to .ssh/authorized_keys ? You are doing scp before the key got apppended to the server

@madhusudan12 visit this link to understand how scp works

Copy link

manyget commented Sep 16, 2021

Public keys on my Ubuntu have 644 permissions, and authoerized_keys 600 (without my having done anything to change them). Does scp in Step 1 result in authorized_keys having 644? Is that OK? I guess OK could mean two things. Will the machine not object? And OK from a security perspective. (I don't know anything. Just asking.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment