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 建议设置为 |
名称、类型、描述 |
---|
per_page integer 每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
page integer 要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
用于“列出已认证用户的公共 SSH 密钥”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | 成功 |
304 | 未修改 |
401 | 需要身份验证 |
403 | 禁止 |
404 | 资源未找到 |
代码示例:“列出已认证用户的公共 SSH 密钥”
请求示例
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 建议设置为 |
名称、类型、描述 |
---|
title string 新密钥的描述性名称。 |
key string 必需要添加到您的 GitHub 帐户的公共 SSH 密钥。 |
用于“为已认证用户创建公共 SSH 密钥”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
201 | 已创建 |
304 | 未修改 |
401 | 需要身份验证 |
403 | 禁止 |
404 | 资源未找到 |
422 | 验证失败,或端点已被垃圾邮件。 |
代码示例:“为已认证用户创建公共 SSH 密钥”
请求示例
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"}'
响应
获取已认证用户的公钥
查看单个公钥的扩展详细信息。
OAuth 应用令牌和个人访问令牌(经典)需要 read:public_key
范围才能使用此端点。
用于“获取已认证用户的公钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “Git SSH 密钥”用户权限(读取)
用于“获取已认证用户的公钥”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
key_id 整数 必需密钥的唯一标识符。 |
用于“获取已认证用户的公钥”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
200 | 成功 |
304 | 未修改 |
401 | 需要身份验证 |
403 | 禁止 |
404 | 资源未找到 |
用于“获取已认证用户的公钥”的代码示例
请求示例
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
响应
删除已认证用户的公钥
从已认证用户的 GitHub 帐户中删除公钥。
OAuth 应用令牌和个人访问令牌(经典)需要 admin:public_key
范围才能使用此端点。
用于“删除已认证用户的公钥”的细粒度访问令牌
此端点适用于以下细粒度令牌类型
细粒度令牌必须具有以下权限集
- “Git SSH 密钥”用户权限(写入)
用于“删除已认证用户的公钥”的参数
名称、类型、描述 |
---|
accept string 建议设置为 |
名称、类型、描述 |
---|
key_id 整数 必需密钥的唯一标识符。 |
用于“删除已认证用户的公钥”的 HTTP 响应状态码
状态码 | 描述 |
---|---|
204 | 无内容 |
304 | 未修改 |
401 | 需要身份验证 |
403 | 禁止 |
404 | 资源未找到 |
用于“删除已认证用户的公钥”的代码示例
请求示例
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 建议设置为 |
名称、类型、描述 |
---|
username 字符串 必需GitHub 用户帐户的句柄。 |
名称、类型、描述 |
---|
per_page integer 每页结果数(最大 100)。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
page integer 要获取的结果页码。有关更多信息,请参阅“在 REST API 中使用分页”。 默认: |
“列出用户的公开密钥”的 HTTP 响应状态代码
状态码 | 描述 |
---|---|
200 | 成功 |
“列出用户的公开密钥”的代码示例
请求示例
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
响应