- 列出所有 SSH 密钥
- 列出用户的所有 SSH 密钥
- 获取 SSH 密钥
- 获取用户的 SSH 密钥
- 添加 SSH 密钥
- 为用户添加 SSH 密钥
- 删除 SSH 密钥
- 删除用户的 SSH 密钥
- 列出所有 GPG 密钥
- 列出用户的所有 GPG 密钥
- 获取 GPG 密钥
- 获取用户的 GPG 密钥
- 添加 GPG 密钥
- 为用户添加 GPG 密钥
- 删除 GPG 密钥
- 删除用户的 GPG 密钥
{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
使用此 API 与用户的 SSH 和 GPG 密钥进行交互。有关更多信息,请参阅 SSH 密钥 和 GPG 密钥。
列出所有 SSH 密钥
列出您用户账户的所有 SSH 密钥。
使用 page
和 per_page
分页参数 来过滤结果。
先决条件:
- 您必须已通过身份验证。
GET /user/keys
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/keys"
示例响应:
[
{
"id": 1,
"title": "Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "auth"
},
{
"id": 3,
"title": "Another Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "signing"
}
]
列出用户的所有 SSH 密钥
列出指定用户账户的所有 SSH 密钥。此端点不需要身份验证。
GET /users/:id_or_username/keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id_or_username |
string | 是 | 用户账户的 ID 或用户名 |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/1/keys"
获取 SSH 密钥
获取您用户账户的 SSH 密钥。此端点不需要身份验证。
GET /user/keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
key_id |
string | 是 | 现有密钥的 ID |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/keys/1"
示例响应:
{
"id": 1,
"title": "Public key",
"key": "<SSH_KEY>",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "auth"
}
获取用户的 SSH 密钥
获取指定用户账户的 SSH 密钥。此端点不需要身份验证。
GET /users/:id/keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有密钥的 ID |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/users/1/keys/1"
示例响应:
{
"id": 1,
"title": "Public key",
"key": "<SSH_KEY>",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "auth"
}
添加 SSH 密钥
{{< history >}}
-
usage_type
参数在 极狐GitLab 15.7 中 引入。
{{< /history >}}
为您的用户账户添加 SSH 密钥。
先决条件:
- 您必须已通过身份验证。
POST /user/keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
title |
string | 是 | 密钥的标题 |
key |
string | 是 | 公钥值 |
expires_at |
string | 否 | 密钥的过期日期,ISO 格式 (YYYY-MM-DD )。 |
usage_type |
string | 否 | 密钥的使用范围。可能的值:auth 、signing 或 auth_and_signing 。默认值:auth_and_signing
|
返回结果:
- 成功时返回状态
201 Created
和已创建的密钥。 -
返回状态
400 Bad Request
和解释错误的消息:{ "message": { "fingerprint": [ "has already been taken" ], "key": [ "has already been taken" ] } }
示例响应:
{
"title": "ABC",
"key": "<SSH_KEY>",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
为用户添加 SSH 密钥
{{< history >}}
-
usage_type
参数在 极狐GitLab 15.7 中 引入。
{{< /history >}}
为指定用户账户添加 SSH 密钥。
{{< alert type=”note” >}}
这也会添加一个审计事件。
{{< /alert >}}
先决条件:
- 您必须具有管理员访问实例的权限。
POST /users/:id/keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
title |
string | 是 | 密钥的标题 |
key |
string | 是 | 公钥值 |
expires_at |
string | 否 | 访问令牌的过期日期,ISO 格式 (YYYY-MM-DD )。 |
usage_type |
string | 否 | 密钥的使用范围。可能的值:auth 、signing 或 auth_and_signing 。默认值:auth_and_signing
|
返回结果:
- 成功时返回状态
201 Created
和已创建的密钥。 -
返回状态
400 Bad Request
和解释错误的消息:{ "message": { "fingerprint": [ "has already been taken" ], "key": [ "has already been taken" ] } }
示例响应:
{
"title": "ABC",
"key": "<SSH_KEY>",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
删除 SSH 密钥
从您的用户账户中删除 SSH 密钥。
先决条件:
- 您必须已通过身份验证。
DELETE /user/keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
key_id |
integer | 是 | 现有密钥的 ID |
返回结果:
- 如果操作成功,则返回
204 No Content
状态码。 - 如果资源未找到,则返回
404
状态码。
删除用户的 SSH 密钥
从指定用户账户中删除 SSH 密钥。
先决条件:
- 您必须具有管理员访问实例的权限。
DELETE /users/:id/keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有密钥的 ID |
列出所有 GPG 密钥
列出您用户账户的所有 GPG 密钥。
先决条件:
- 您必须已通过身份验证。
GET /user/gpg_keys
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/gpg_keys"
示例响应:
[
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
列出用户的所有 GPG 密钥
列出指定用户账户的所有 GPG 密钥。此端点不需要身份验证。
GET /users/:id/gpg_keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/2/gpg_keys"
示例响应:
[
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
获取 GPG 密钥
获取您用户账户的 GPG 密钥。
先决条件:
- 您必须已通过身份验证。
GET /user/gpg_keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
key_id |
integer | 是 | 现有密钥的 ID |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/gpg_keys/1"
示例响应:
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
获取用户的 GPG 密钥
获取指定用户账户的 GPG 密钥。此端点不需要身份验证。
GET /users/:id/gpg_keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有密钥的 ID |
示例请求:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
示例响应:
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
添加 GPG 密钥
为您的用户账户添加 GPG 密钥。
先决条件:
- 您必须已通过身份验证。
POST /user/gpg_keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
key |
string | 是 | 公钥值 |
示例请求:
export KEY="$(gpg --armor --export <your_gpg_key_id>)"
curl --data-urlencode "key=<PGP_PUBLIC_KEY_BLOCK>" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
示例响应:
[
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
为用户添加 GPG 密钥
为指定用户账户添加 GPG 密钥。
先决条件:
- 您必须具有管理员访问实例的权限。
POST /users/:id/gpg_keys
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key |
integer | 是 | 公钥值 |
示例请求:
curl --data-urlencode "key=<PGP_PUBLIC_KEY_BLOCK>" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
示例响应:
[
{
"id": 1,
"key": "<PGP_PUBLIC_KEY_BLOCK>",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
删除 GPG 密钥
从您的用户账户中删除 GPG 密钥。
先决条件:
- 您必须已通过身份验证。
DELETE /user/gpg_keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
key_id |
integer | 是 | 现有密钥的 ID |
返回结果:
- 成功时返回
204 No Content
。 - 如果找不到密钥,则返回
404 Not Found
。
删除用户的 GPG 密钥
从指定用户账户中删除 GPG 密钥。
先决条件:
- 您必须具有管理员访问实例的权限。
DELETE /users/:id/gpg_keys/:key_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有密钥的 ID |