Frequently Asked Question
Uploading SSH Keys
How to Generate an SSH Key Pair with ssh-keygen and Upload It to a Server
Step 1: Generating Your SSH Key Pair
To generate your SSH key pair, you will use the ssh-keygen command. This command creates both a public and private key.
Instructions:
- Open a terminal window.
- Run the following command to generate an RSA key pair with a passphrase for added security:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- You will be prompted to enter a file in which to save the keys (default is
~/.ssh/id_rsa). Press Enter to accept the default. - Next, you'll be asked for a passphrase. A strong passphrase adds an extra layer of security, so choose one carefully.
Step 2: Understanding id_rsa.pub
After generating your SSH key pair, the public key (idrsa.pub) is stored in ~/.ssh/idrsa.pub. This file contains the unique identifier that allows remote servers to authenticate you when you connect. The private key (id_rsa) should remain on your local machine and must never be shared.
Step 3: Copying the Public Key to Your Server
To copy the public key to the server, use ssh-copy-id. This tool securely copies the contents of ~/.ssh/idrsa.pub to the remote server's .ssh/authorizedkeys file.
Instructions:
- On your local machine, run:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@a.b.c.d
Replace root@a.b.c.d with the appropriate username and IP address of your server.
Step 4: Verifying SSH Connection
After copying the key to your server, you should be able to log in without a password using SSH. To verify this:
- Log out from the current session.
- Attempt to log back into the server:
ssh root@a.b.c.d
If everything was set up correctly, you should now be logged in with no password prompt.
Summary of File Locations:
- Local Machine:
~/.ssh/id_rsa(private key)~/.ssh/id_rsa.pub(public key)
- Server:
/root/.ssh/authorized_keys(where the public key is added after using ssh-copy-id)
By following these steps, you ensure a secure method of logging into your server without needing to enter a password every time.
