Group SSH certificates API

Introduced in GitLab 16.4 with a flag named ssh_certificates_rest_endpoints. Disabled by default.

On self-managed GitLab, by default this feature is not available. To make it available, an administrator can enable the feature flag named ssh_certificates_rest_endpoints. On GitLab.com, this feature is not available.

Use this API to create, read and delete SSH certificates for a group. Only top-level groups can store SSH certificates. To use this API, you must authenticate yourself as user assigned the Owner role.

Get all SSH certificates for a particular group

GET groups/:id/ssh_certificates

Parameters:

AttributeTypeRequiredDescription
idintegerYesThe ID of the group.

By default, GET requests return 20 results at a time because the API results are paginated. Read more on pagination.

Example request:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://primary.example.com/api/v4/groups/90/ssh_certificates"

Example response:

[
  {
    "id": 12345,
    "title": "SSH Title 1",
    "key": "ssh-rsa AAAAB3NzaC1ea2dAAAADAQABAAAAgQDGbLkF44ScxRQi2FfA7VsHgGqptguSbmW26jkJhEiRZpGS4/+UzaaSqc8Psw2OhSsKc5QwfrB/ANpO4LhOjDzhf2FuD8ACkv3R7XtaJ+rN6PlyzoBfLAiSyzxhEoMFDBprTgaiZKgg2yQ9dRH55w3f6XMZ4hnaUae53nQgfQLxFw== example@gitlab.com",
    "created_at": "2023-09-08T12:39:00.172Z"
  },
  {
    "id":12346,
    "title":"SSH Title 2",
    "key": "ssh-rsa AAAAB3NzaC1ac2EAAAADAQABAAAAgQDTl/hHfu1F/KlR+QfgM2wUmyxcN5YeiaWluEGIrfXUeJuI+bK6xjpE3+2afHDYtE9VQkeL32KRjefX2d72Jeoa68ewt87Vn8CcGkUTOTpHNzeL8pHMKFs3m7ArSBxNg5vTdgAsq5dbDGNtat7b2WCHTNvtWoON1Jetne30uW2EwQ== example@gitlab.com",
    "created_at": "2023-09-08T12:39:00.244Z"
  }
]

Create SSH Certificate

Create a new SSH certificate in the group.

POST /groups/:id/ssh_certificates

Parameters:

AttributeTypeRequiredDescription
idintegerYesThe ID of the group.
keystringYesThe public key of the SSH certificate.
titlestringYesThe title of the SSH certificate.

Example request:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/ssh_certificates?title=newtitle&key=ssh-rsa+REDACTED+example%40gitlab.com"

Example response:

{
  "id": 54321,
  "title": "newtitle",
  "key": "ssh-rsa ssh-rsa AAAAB3NzaC1ea2dAAAADAQABAAAAgQDGbLkF44ScxRQi2FfA7VsHgGqptguSbmW26jkJhEiRZpGS4/+UzaaSqc8Psw2OhSsKc5QwfrB/ANpO4LhOjDzhf2FuD8ACkv3R7XtaJ+rN6PlyzoBfLAiSyzxhEoMFDBprTgaiZKgg2yQ9dRH55w3f6XMZ4hnaUae53nQgfQLxFw== example@gitlab.com",
  "created_at": "2023-09-08T12:39:00.172Z"
}

Delete group SSH certificate

Delete a SSH certificate from a group.

DELETE /groups/:id/ssh_certificate/:id

Parameters:

AttributeTypeRequiredDescription
idintegerYesThe ID of the group
idintegerYesThe ID of the SSH certificate

Example request:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/5/ssh_certificates/12345"