Group SSH certificates API
-
Introduced in GitLab 16.4 with a flag named
ssh_certificates_rest_endpoints
. Disabled by default. - Enabled on GitLab.com in GitLab 16.9.
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:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer | Yes | The 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:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer | Yes | The ID of the group. |
key
| string | Yes | The public key of the SSH certificate. |
title
| string | Yes | The 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:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer | Yes | The ID of the group |
id
| integer | Yes | The 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"