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

Git SSH 密钥的 REST API 端点

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

关于 Git SSH 密钥管理

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

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

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

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

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

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

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

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

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

头部
名称、类型、描述
accept 字符串

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

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

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

默认: 30

page 整数

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

默认: 1

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

状态码描述
200

OK

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 字符串

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

主体参数
名称、类型、描述
title 字符串

新密钥的描述性名称。

key 字符串 必填

要添加到您的 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 }

获取已认证用户的公共 SSH 密钥

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

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

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

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

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

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

“获取已认证用户的公共 SSH 密钥”的参数

头部
名称、类型、描述
accept 字符串

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

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

密钥的唯一标识符。

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

状态码描述
200

OK

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

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

请求示例

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 }

删除已认证用户的公共 SSH 密钥

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

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

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

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

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

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

“删除已认证用户的公共 SSH 密钥”的参数

头部
名称、类型、描述
accept 字符串

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

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

密钥的唯一标识符。

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

状态码描述
204

无内容

304

未修改

401

需要身份验证

403

禁止

404

资源未找到

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

请求示例

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 字符串

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

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

GitHub 用户帐户的句柄。

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

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

默认: 30

page 整数

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

默认: 1

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

状态码描述
200

OK

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

请求示例

获取/users/{username}/keys
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <你的令牌>" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/users/用户名/keys

响应

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