---
name: "glab-ssh-key-add"
section: "1"
platform: "linux"
package: "glab"
version: "1.126.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/glab-ssh-key-add"
---

# glab-ssh-key-add(1)

Add an SSH key to your GitLab account.

## NAME

glab-ssh-key-add - Add an SSH key to your GitLab account.

## SYNOPSIS

**glab ssh-key add \[key-file\] \[flags\]**

## DESCRIPTION

Creates a new SSH key owned by the currently authenticated user.

Requires the '--title' flag.

GitLab rejects a key whose fingerprint is already registered on your account, even when that key has expired. Use '--replace' to delete the existing key with the same SHA256 fingerprint and add it again with the new title, usage type, and expiration date.

## OPTIONS

**-e**, **--expires-at**=""\
 	The expiration date of the SSH key. Uses ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

**--replace**\[=false\]\
 	Delete an existing key with the same fingerprint, such as an expired key, before adding this one.

**-t**, **--title**=""\
 	New SSH key's title.

**-u**, **--usage-type**="auth\_and\_signing"\
 	Usage scope for the key. Possible values: 'auth', 'signing' or 'auth\_and\_signing'. Default value: 'auth\_and\_signing'.

## OPTIONS INHERITED FROM PARENT COMMANDS

**-h**, **--help**\[=false\]\
 	Show help for this command.

**-R**, **--repo**=""\
 	Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.

## EXAMPLE

```
# Read ssh key from stdin and upload.
glab ssh-key add -t "my title"
# Read ssh key from specified key file, upload and set the ssh key type to "authentication".
glab ssh-key add ~/.ssh/id_ed25519.pub -t "my title" --usage-type "auth"
# Re-register an expired key with a new expiration date.
glab ssh-key add ~/.ssh/id_ed25519.pub -t "my title" --expires-at 2027-01-01 --replace
```

## SEE ALSO

**[glab-ssh-key(1)](/glab-ssh-key/1.md)**
