The power of ssh-copy-id
Simplifying SSH Key Management
For the longest time, anytime I wanted to create SSH keys on my local machine and publish them on a server, I'd go through this manual process.
Step 1 - Create an SSH Key
This command creates a public key (id_rsa.pub
) and a private key (id_rsa
) in the ~/.ssh/
directory.
ssh-keygen
Step 2 - Manually Copy to Remote Server
After generating the keys, I'd log into the remote server and manually copy the keys using the following commands:
# Double-check authorized keys
nano ~/.ssh/authorized_keys
# Create an SSH key
ssh-keygen
# Copy private key to your local computer
cp .ssh/id_rsa > /path/to/local/computer
# Remove private key from the current location
rm -rf .ssh/id_rsa
# View the public key
nano .ssh/id_rsa.pub
# Remove the public key file
rm -rf .ssh/id_rsa.pub
# Paste the public key into authorized keys
nano ~/.ssh/authorized_keys
New Way - Using ssh-copy-id
Now, there's a more straightforward way to copy your public key to the authorized_keys file on the remote server. Simply use ssh-copy-id:
# Generate SSH Key (if not done already)
ssh-keygen
# Copy Public Key to Remote Server
ssh-copy-id user@remote_server
This streamlined approach eliminates the manual steps of copying and pasting keys, making the process more efficient and user-friendly.