0Pricing
Linux Command Line Mastery · Lesson

Secure Shell Key Management

Implement passwordless SSH authentication using key pairs for enhanced security and convenience.

Secure Shell Key Management is a free Linux Command Line Mastery lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Linux Command Line Mastery learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

What are SSH Keys?

SSH keys are a secure way to log into a remote server without needing a password. Think of them as a digital key and lock system.

  • They provide stronger security than traditional passwords.
  • They offer convenience by enabling passwordless logins.
  • This lesson will guide you through setting them up.

Public and Private Key Pair

An SSH key system uses two parts: a public key and a private key.

  • Your private key stays on your local computer and must be kept secret. Never share it!
  • Your public key can be freely shared. You place it on any server you want to connect to.
  • When you try to connect, the server uses your public key to verify your private key, allowing access.

Generating Your Own SSH Keys

You create an SSH key pair using the ssh-keygen command in your terminal.

By default, it creates keys in the ~/.ssh/ directory (a hidden folder in your home directory). The most common key type is RSA.

You'll be prompted for a passphrase. This adds an extra layer of security to your private key, encrypting it. It's highly recommended!

Hands-on: Using `ssh-keygen`

Let's generate an RSA key pair. When prompted, you can press Enter to use default file locations and choose a strong passphrase (or leave it empty for no passphrase, though not recommended for security).

ssh-keygen -t rsa -b 4096

Understanding Key Files

After running ssh-keygen, you'll find two new files in your ~/.ssh/ directory:

  • id_rsa: This is your private key. Keep it safe and never share it!
  • id_rsa.pub: This is your public key. You'll copy this to remote servers.

The command also shows a key fingerprint, a unique identifier for your key pair.

Copying Your Public Key to a Server

To enable passwordless login, your public key needs to be on the remote server. The easiest way to do this is with the ssh-copy-id command.

It automatically appends your public key to the ~/.ssh/authorized_keys file on the server. You'll need to enter the server's password just this one time.

ssh-copy-id user@remote_host

Manual Public Key Installation

If ssh-copy-id isn't available on your system, you can manually copy your public key. This involves reading your local public key and piping it to the remote server via SSH, appending it to the authorized_keys file.

Make sure the .ssh directory exists and has correct permissions on the server (chmod 700 ~/.ssh).

cat ~/.ssh/id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"

Testing Passwordless Login

Once your public key is on the server, try logging in. If you set a passphrase, you'll be prompted for it. If not, you should connect directly without any password prompts!

This confirms that your SSH key authentication is working correctly.

ssh user@remote_host

Using `ssh-agent` for Convenience

If your private key has a passphrase, you'll be asked for it every time you connect. The SSH agent helps by storing your decrypted private key in memory.

  • Start the agent: eval "$(ssh-agent -s)"
  • Add your key: ssh-add ~/.ssh/id_rsa (enter passphrase once)

Now you can connect multiple times without re-entering your passphrase until the agent restarts.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Quick Check: SSH Key Files

Which of the following files contains your public key and is safe to share with remote servers?

Recap: Secure Key Management

You've learned how to set up and manage SSH key pairs for secure, passwordless authentication.

  • Generate keys with ssh-keygen.
  • Understand private (id_rsa) and public (id_rsa.pub) keys.
  • Copy public keys to servers using ssh-copy-id or manually.
  • Use ssh-agent and ssh-add for passphrase convenience.

SSH keys are a fundamental tool for efficient and secure remote access in Linux!

Frequently asked questions

Is the “Secure Shell Key Management” lesson free?

Yes — the full text of “Secure Shell Key Management” is free to read here on the web, and the Linux Command Line Mastery course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Linux Command Line Mastery course, upgrade to CoddyKit PRO.

What will I learn in “Secure Shell Key Management”?

Implement passwordless SSH authentication using key pairs for enhanced security and convenience. You practise Linux Command Line Mastery with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Linux Command Line Mastery?

No prior experience is required. Linux Command Line Mastery on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Secure Shell Key Management” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Linux Command Line Mastery lesson?

Yes. Every Linux Command Line Mastery lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Network Diagnostics: `traceroute`, `nslookup`, `dig`
  2. Firewall Management: `ufw`, `firewalld`, `iptables`
  3. Secure Shell Key Management
  4. Capturing and Inspecting Traffic with tcpdump
← Back to Linux Command Line Mastery