Help us learn about your current experience with the documentation. Take the survey.

用户 SSH 和 GPG keys API

  • Tier: 免费、高级、终极
  • Offering: GitLab.com、GitLab 自托管、GitLab 专用

使用此 API 与用户的 SSH 和 GPG keys 进行交互。更多信息请参见 SSH keysGPG keys

列出所有 SSH keys

列出您用户账户的所有 SSH keys。

使用 pageper_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 的使用范围。可能的值:authsigningauth_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 的使用范围。可能的值:authsigningauth_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