跳至主要内容
REST API 现在已版本化。 有关更多信息,请参阅“关于 API 版本控制”。

Git SSH 密钥的 REST API 端点

使用 REST API 管理已认证用户的 Git SSH 密钥。

关于 Git SSH 密钥管理

如果请求 URL 不包含 {username} 参数,则响应将针对已登录的用户(并且您必须通过请求传递 身份验证信息)。当通过 OAuth 使用 user 范围进行身份验证时,将包含其他私有信息,例如用户是否启用了双因素身份验证。

列出已认证用户的公共 SSH 密钥

列出已认证用户的 GitHub 帐户的公共 SSH 密钥。

OAuth 应用令牌和个人访问令牌(经典)需要 read:public_key 范围才能使用此端点。

用于“列出已认证用户的公共 SSH 密钥”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “Git SSH 密钥”用户权限(读取)

用于“列出已认证用户的公共 SSH 密钥”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

查询参数
名称、类型、描述
per_page integer

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 30

page integer

要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 1

用于“列出已认证用户的公共 SSH 密钥”的 HTTP 响应状态代码

状态码描述
200

成功

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

代码示例:“列出已认证用户的公共 SSH 密钥”

请求示例

get/user/keys
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/user/keys

响应

状态:200
[ { "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", "id": 2, "url": "https://api.github.com/user/keys/2", "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", "created_at": "2020-06-11T21:31:57Z", "verified": false, "read_only": false }, { "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJy931234", "id": 3, "url": "https://api.github.com/user/keys/3", "title": "ssh-rsa AAAAB3NzaC1yc2EAAB", "created_at": "2020-07-11T21:31:57Z", "verified": false, "read_only": false } ]

为已认证用户创建公共 SSH 密钥

将公共 SSH 密钥添加到已认证用户的 GitHub 帐户。

OAuth 应用令牌和个人访问令牌(经典)需要 `write:gpg_key` 范围才能使用此端点。

用于“为已认证用户创建公共 SSH 密钥”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “Git SSH 密钥”用户权限(写入)

用于“为已认证用户创建公共 SSH 密钥”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

主体参数
名称、类型、描述
title string

新密钥的描述性名称。

key string 必需

要添加到您的 GitHub 帐户的公共 SSH 密钥。

用于“为已认证用户创建公共 SSH 密钥”的 HTTP 响应状态码

状态码描述
201

已创建

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

422

验证失败,或端点已被垃圾邮件。

代码示例:“为已认证用户创建公共 SSH 密钥”

请求示例

post/user/keys
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/user/keys \ -d '{"title":"ssh-rsa AAAAB3NzaC1yc2EAAA","key":"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234"}'

响应

状态码: 201
{ "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", "id": 2, "url": "https://api.github.com/user/keys/2", "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", "created_at": "2020-06-11T21:31:57Z", "verified": false, "read_only": false }

获取已认证用户的公钥

查看单个公钥的扩展详细信息。

OAuth 应用令牌和个人访问令牌(经典)需要 read:public_key 范围才能使用此端点。

用于“获取已认证用户的公钥”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “Git SSH 密钥”用户权限(读取)

用于“获取已认证用户的公钥”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
key_id 整数 必需

密钥的唯一标识符。

用于“获取已认证用户的公钥”的 HTTP 响应状态码

状态码描述
200

成功

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

用于“获取已认证用户的公钥”的代码示例

请求示例

get/user/keys/{key_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/user/keys/KEY_ID

响应

状态:200
{ "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234", "id": 2, "url": "https://api.github.com/user/keys/2", "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", "created_at": "2020-06-11T21:31:57Z", "verified": false, "read_only": false }

删除已认证用户的公钥

从已认证用户的 GitHub 帐户中删除公钥。

OAuth 应用令牌和个人访问令牌(经典)需要 admin:public_key 范围才能使用此端点。

用于“删除已认证用户的公钥”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “Git SSH 密钥”用户权限(写入)

用于“删除已认证用户的公钥”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
key_id 整数 必需

密钥的唯一标识符。

用于“删除已认证用户的公钥”的 HTTP 响应状态码

状态码描述
204

无内容

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

用于“删除已认证用户的公钥”的代码示例

请求示例

delete/user/keys/{key_id}
curl -L \ -X DELETE \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/user/keys/KEY_ID

响应

状态: 204

列出用户的公开密钥

列出用户已验证的公开 SSH 密钥。任何人都可以访问。

用于“列出用户的公开密钥”的细粒度访问令牌

此端点适用于以下细粒度令牌类型

细粒度令牌必须具有以下权限集

  • “Git SSH 密钥”用户权限(读取)

如果仅请求公共资源,则无需身份验证或上述权限即可使用此端点。

“列出用户的公开密钥”的参数

标头
名称、类型、描述
accept string

建议设置为 application/vnd.github+json

路径参数
名称、类型、描述
username 字符串 必需

GitHub 用户帐户的句柄。

查询参数
名称、类型、描述
per_page integer

每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 30

page integer

要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。

默认: 1

“列出用户的公开密钥”的 HTTP 响应状态代码

状态码描述
200

成功

“列出用户的公开密钥”的代码示例

请求示例

获取/users/{username}/keys
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/users/USERNAME/keys

响应

状态:200
[ { "id": 1, "key": "ssh-rsa AAA..." } ]