> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Manage SSH Keys

> Learn how to add, generate, and manage SSH keys in the FREAKHOSTING VPS Control Panel for secure, passwordless server authentication.

## Secure Authentication with SSH Keys

Every time you log into a server with a password, that password travels over the network. SSH keys eliminate this risk entirely by using a pair of cryptographic files to prove your identity instead.

**Think of it like a key and a lock.** You keep the key (your private key) on your computer. You put the lock (your public key) on your server. When you connect, the server checks whether your key fits its lock. If it does, you are in — no password needed, nothing sent over the wire that could be intercepted.

The FREAKHOSTING VPS Control Panel lets you store up to **50 public keys** on your account and inject them into any server during the build process. That means passwordless login from the moment your server is ready.

<CardGroup cols={2}>
  <Card title="Difficulty" icon="gauge">
    Intermediate
  </Card>

  <Card title="Time" icon="clock">
    5 Minutes
  </Card>
</CardGroup>

***

## Viewing Your SSH Keys

<Steps>
  <Step title="Navigate to SSH Keys">
    Click on **SSH Keys** in the top navigation bar of the control panel.
  </Step>

  <Step title="Review Your Keys">
    The SSH Keys page shows a heading like **"0 slots used, 50 remaining"** along with a list of all your stored public keys. Each account can hold up to **50 SSH keys** — more than enough for separate keys on your work laptop, home desktop, tablet, and any CI/CD pipelines you run.

    If you have not added any keys yet, you will see a **"No SSH Keys found"** message with an **Add Key** button ready to go.
  </Step>
</Steps>

***

## Generating an SSH Key on Your Computer

If you do not have an SSH key yet, here is how to create one on your local machine. We recommend generating keys locally rather than in the panel, because it means your private key never leaves your computer.

<Tabs>
  <Tab title="Windows 10/11">
    Open **PowerShell** or **Windows Terminal** and run:

    ```powershell theme={null}
    ssh-keygen -t ed25519 -C "your-email@example.com"
    ```

    When prompted:

    * **File location:** Press Enter to accept the default (`C:\Users\YourName\.ssh\id_ed25519`)
    * **Passphrase:** Type a passphrase for extra security (recommended) or press Enter for none

    Your key pair is created. The public key is at:

    ```
    C:\Users\YourName\.ssh\id_ed25519.pub
    ```

    Copy the public key to your clipboard:

    ```powershell theme={null}
    Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
    ```
  </Tab>

  <Tab title="macOS">
    Open **Terminal** and run:

    ```bash theme={null}
    ssh-keygen -t ed25519 -C "your-email@example.com"
    ```

    When prompted:

    * **File location:** Press Enter to accept the default (`~/.ssh/id_ed25519`)
    * **Passphrase:** Type a passphrase for extra security (recommended) or press Enter for none

    Your key pair is created. Copy the public key to your clipboard:

    ```bash theme={null}
    pbcopy < ~/.ssh/id_ed25519.pub
    ```
  </Tab>

  <Tab title="Linux">
    Open your terminal and run:

    ```bash theme={null}
    ssh-keygen -t ed25519 -C "your-email@example.com"
    ```

    When prompted:

    * **File location:** Press Enter to accept the default (`~/.ssh/id_ed25519`)
    * **Passphrase:** Type a passphrase for extra security (recommended) or press Enter for none

    Your key pair is created. Copy the public key to your clipboard:

    ```bash theme={null}
    cat ~/.ssh/id_ed25519.pub
    ```

    Select and copy the output. If you have `xclip` installed, you can also use:

    ```bash theme={null}
    xclip -sel clipboard < ~/.ssh/id_ed25519.pub
    ```
  </Tab>
</Tabs>

<Tip>
  **Why Ed25519?** It is the modern standard — shorter keys, faster authentication, and stronger security than the older RSA format. If your system does not support Ed25519 (very rare), fall back to `ssh-keygen -t rsa -b 4096` instead.
</Tip>

***

## Adding Your SSH Key to the Control Panel

Now that you have a public key on your clipboard, upload it to FREAKHOSTING:

<Steps>
  <Step title="Click Add Key">
    On the SSH Keys page, click the blue **Add Key** button.
  </Step>

  <Step title="Enter a Name">
    Type a descriptive **Name** for your key so you can identify it later — something like "Work Laptop" or "Home Desktop." You can also click **Random Name?** to auto-generate a name if you prefer.
  </Step>

  <Step title="Paste Your Public Key">
    In the **Public Key** field, paste the contents of your public key file. It should look something like:

    ```
    ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... your-email@example.com
    ```

    or if you are using RSA:

    ```
    ssh-rsa AAAAB3NzaC1yc2EAAA... user@hostname
    ```

    **Important:** Make sure you paste the **public** key (the `.pub` file), not the private key. The private key should never be uploaded anywhere.
  </Step>

  <Step title="Save the Key">
    Click the **Save** button. Your key now appears in the list, and the slot counter updates (for example, "1 slots used, 49 remaining").
  </Step>
</Steps>

***

## Generating a Key Pair in the Control Panel

If you prefer not to use the command line, the control panel can generate a key pair for you:

<Steps>
  <Step title="Click Add Key">
    On the SSH Keys page, click the **Add Key** button.
  </Step>

  <Step title="Enter a Name">
    Type a name for your new key or click **Random Name?** to auto-generate one.
  </Step>

  <Step title="Generate the Key Pair">
    Click the **Generate Key Pair** button. The system will create a new **2048-bit RSA** key pair.
  </Step>

  <Step title="Download Your Private Key Immediately">
    A dialog will appear containing your **private key**. **Download and save this right now** — it is only displayed once and cannot be recovered later.

    Save it to a secure location on your computer:

    * **macOS / Linux:** `~/.ssh/` directory
    * **Windows:** `C:\Users\YourName\.ssh\` directory

    Set the correct permissions (macOS/Linux):

    ```bash theme={null}
    chmod 600 ~/.ssh/your_downloaded_key
    ```
  </Step>

  <Step title="Confirm">
    The public key portion is automatically saved to your account. Click **Save** to finish.
  </Step>
</Steps>

<Important>
  Your private key is shown **only once** when generated. If you lose it, you will need to generate a new key pair entirely. Never share your private key with anyone — only the **public** key gets uploaded to servers and services. The private key stays on your machine, period.
</Important>

***

## Using SSH Keys with Your VPS

SSH keys stored in the control panel can be selected during the VPS build (or rebuild) process. When you build or rebuild a server, you will see an option to inject one or more of your stored SSH keys. This enables passwordless SSH login from the moment your server finishes building.

<Tabs>
  <Tab title="Linux / macOS">
    Connect using the private key:

    ```bash theme={null}
    ssh -i ~/.ssh/id_ed25519 root@YOUR_SERVER_IP
    ```

    **Tip:** Add this to your `~/.ssh/config` to avoid typing the key path every time:

    ```
    Host myserver
        HostName YOUR_SERVER_IP
        User root
        IdentityFile ~/.ssh/id_ed25519
    ```

    Then simply run: `ssh myserver`
  </Tab>

  <Tab title="Windows (PowerShell)">
    Connect using the private key:

    ```powershell theme={null}
    ssh -i C:\Users\YourName\.ssh\id_ed25519 root@YOUR_SERVER_IP
    ```
  </Tab>

  <Tab title="PuTTY (Windows)">
    PuTTY uses its own key format (`.ppk`), so you will need to convert your private key first:

    1. Open **PuTTYgen**
    2. Click **Load** and select your private key file
    3. Click **Save private key** to save it as a `.ppk` file
    4. In PuTTY, go to **Connection > SSH > Auth > Credentials** and browse to your `.ppk` file
    5. Enter your server IP in the **Host Name** field and click **Open**
  </Tab>
</Tabs>

***

## Removing an SSH Key

To remove a stored SSH key from your account, locate the key in your SSH Keys list and click the **Delete** button next to it.

**Important to understand:** Removing a key from the control panel does **not** remove it from servers where it has already been installed. It only prevents the key from being injected into future builds. If you want to revoke access to an existing server, you will need to manually remove the key from the server's `~/.ssh/authorized_keys` file as well.

***

## Understanding the 50-Key Limit

Your account can store up to **50 SSH keys**. This limit is per account, not per server. In practice, 50 slots is generous — you might use a handful for your personal devices and a few more for CI/CD systems or deployment scripts. If you find yourself approaching the limit, remove old keys from devices you no longer use.

***

<AccordionGroup>
  <Accordion title="What is the difference between a public key and a private key?">
    An SSH key pair has two parts. The **public key** is like a lock — you put it on every server you want to access. The **private key** is the only key that opens that lock, and it stays on your computer. When you connect, the server tests whether your private key matches the public key it has on file. If it does, you are authenticated — no password involved. The private key never leaves your machine during this process.
  </Accordion>

  <Accordion title="Can I use the same SSH key for multiple servers?">
    Yes, and this is the most common approach. You use one key pair across all your servers, so you only need to manage a single private key on your device. Each server simply gets a copy of your public key.
  </Accordion>

  <Accordion title="What key types are supported?">
    The control panel generates **RSA 2048-bit** keys when you use the built-in generator. When uploading your own keys, **RSA**, **Ed25519**, and **ECDSA** key types are all supported. We recommend **Ed25519** for new keys — it is faster, more secure, and produces shorter keys.
  </Accordion>

  <Accordion title="Should I add a passphrase to my SSH key?">
    Yes, adding a passphrase is recommended. A passphrase encrypts your private key file so that even if someone copies it from your computer, they cannot use it without knowing the passphrase. It is a second layer of defense, just like 2FA for your passwords.
  </Accordion>
</AccordionGroup>

***

<Note>
  ### Need Extra Help?

  If you encounter any issues, our support team is ready to assist:

  * **Live Chat:** Quick assistance via our website.
  * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
  * **Discord:** [Join our Community](https://discord.gg/freakhosting)
  * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)
</Note>

<Tip>
  ### Save on Your Hosting

  Ready to get a new server? Use code **KB20** at checkout for **20% off** your first month!
</Tip>

***

<div align="center">
  **Last Updated:** March 2026 | **VPS Support:** SSH key management simplified.
</div>
