> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/end-user-guide-for-selfservice/change-password/ssh-keys.md).

# SSH keys

Store the SSH keys you use to connect to servers, and keep track of when they expire.

This page matters only if your job involves connecting to servers — most people can skip it.

An **SSH key** is a pair of files used instead of a password to connect to a server:

* a **public key**, which is placed on the servers you connect to, and
* a **private key**, which stays with you and proves your identity.

**SSH Key Manager** lets you store your keys against your identity, so your organization knows which keys are yours and when they should stop being trusted.

Open it from your account menu → **Security → SSH Keys**.

## What the page shows

| Column                   | What it holds                                  |
| ------------------------ | ---------------------------------------------- |
| **Public Key Filename**  | The name of the public key file                |
| **Public Key**           | The public key itself                          |
| **Private Key Filename** | The name of the private key file, where stored |
| **Private Key**          | The private key, where stored                  |
| **Expiration Date**      | The date the key should no longer be trusted   |

## Adding a key

{% stepper %}
{% step %}
**Generate the key pair on your own machine.**

Use your normal tooling. OpenIAM stores keys; it does not create them for you.
{% endstep %}

{% step %}
**Choose Add SSH Key.**

Provide the public key, and the private key if your organization asks you to store it here.
{% endstep %}

{% step %}
**Set an expiration date.**

This is how keys get retired instead of living forever. Choose a date that reflects how long you actually need it.
{% endstep %}

{% step %}
**Save.**

You see *"SSH key saved"*. To remove one, delete it — you see *"SSH key removed"*.
{% endstep %}
{% endstepper %}

If a save or delete fails you see *"SSH key could not be saved"* or *"SSH key could not be deleted"* — contact your help desk with the exact message.

## Handling keys safely

{% hint style="danger" %}
Your **private key is a credential** — it is the equivalent of your password for every server that trusts it. Never email it, paste it into a chat or ticket, or store it anywhere colleagues can read. Protect it with a passphrase. If a private key is ever exposed, treat it as compromised: remove it here, and tell your security team.
{% endhint %}

Everyday good practice:

* **Give each key a real expiry date** rather than the longest allowed.
* **Use separate keys for separate purposes** — one per machine you connect from — so losing a laptop means retiring one key, not all of them.
* **Remove keys you no longer use.** An unused key that still works is a way in that nobody is watching.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openiam.com/end-user-guide-for-selfservice/change-password/ssh-keys.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
