用户 SSH 和 GPG keys API
- Tier: 免费、高级、终极
- Offering: GitLab.com、GitLab 自托管、GitLab 专用
使用此 API 与用户的 SSH 和 GPG keys 进行交互。更多信息请参见 SSH keys 和 GPG keys。
列出所有 SSH keys
列出您用户账户的所有 SSH keys。
使用 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 keys
列出指定用户账户的所有 SSH keys。此端点不需要身份验证。
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 key
获取您用户账户的 SSH key。此端点不需要身份验证。
GET /user/keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
key_id |
string | 是 | 现有 key 的 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 key
获取指定用户账户的 SSH key。此端点不需要身份验证。
GET /users/:id/keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有 key 的 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 key
为您的用户账户添加 SSH key。
先决条件:
- 您必须已通过身份验证。
POST /user/keys支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
title |
string | 是 | key 的标题 |
key |
string | 是 | 公钥值 |
expires_at |
string | 否 | key 的过期日期,ISO 格式(YYYY-MM-DD) |
usage_type |
string | 否 | key 的使用范围。可能的值:auth、signing 或 auth_and_signing。默认值:auth_and_signing |
返回:
-
成功时返回创建的 key,状态码为
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 key
为指定用户账户添加 SSH key。
这还会添加一个审计事件。
先决条件:
- 您必须拥有实例的管理员权限。
POST /users/:id/keys支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
title |
string | 是 | key 的标题 |
key |
string | 是 | 公钥值 |
expires_at |
string | 否 | 访问令牌的过期日期,ISO 格式(YYYY-MM-DD) |
usage_type |
string | 否 | key 的使用范围。可能的值:auth、signing 或 auth_and_signing。默认值:auth_and_signing |
返回:
-
成功时返回创建的 key,状态码为
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 key
从您的用户账户删除 SSH key。
先决条件:
- 您必须已通过身份验证。
DELETE /user/keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
key_id |
integer | 是 | 现有 key 的 ID |
返回:
- 操作成功时返回
204 No Content状态码。 - 资源未找到时返回
404状态码。
删除用户的 SSH key
从指定用户账户删除 SSH key。
先决条件:
- 您必须拥有实例的管理员权限。
DELETE /users/:id/keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有 key 的 ID |
列出所有 GPG keys
列出您用户账户的所有 GPG keys。
先决条件:
- 您必须已通过身份验证。
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 keys
列出指定用户账户的所有 GPG keys。此端点不需要身份验证。
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 key
获取您用户账户的 GPG key。
先决条件:
- 您必须已通过身份验证。
GET /user/gpg_keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
key_id |
integer | 是 | 现有 key 的 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 key
获取指定用户账户的 GPG key。此端点不需要身份验证。
GET /users/:id/gpg_keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有 key 的 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 key
为您的用户账户添加 GPG key。
先决条件:
- 您必须已通过身份验证。
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 key
为指定用户账户添加 GPG key。
先决条件:
- 您必须拥有实例的管理员权限。
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 key
从您的用户账户删除 GPG key。
先决条件:
- 您必须已通过身份验证。
DELETE /user/gpg_keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
key_id |
integer | 是 | 现有 key 的 ID |
返回:
- 成功时返回
204 No Content。 - 找不到 key 时返回
404 Not Found。
删除用户的 GPG key
从指定用户账户删除 GPG key。
先决条件:
- 您必须拥有实例的管理员权限。
DELETE /users/:id/gpg_keys/:key_id支持的属性:
| 属性 | 类型 | 必需 | 描述 |
|---|---|---|---|
id |
integer | 是 | 用户账户的 ID |
key_id |
integer | 是 | 现有 key 的 ID |