ユーザーSSHおよびGPGキーAPI
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、ユーザーのSSHキーおよびGPGキーを操作します。
すべてのSSHキーを一覧表示
自分のユーザーアカウントのすべてのSSHキーを一覧表示します。
結果をフィルタリングするには、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キーを一覧表示
指定されたユーザーアカウントのすべてのSSHキーを一覧表示します。このエンドポイントは認証を必要としません。
GET /users/:id_or_username/keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id_or_username | 文字列 | はい | ユーザーアカウントのIDまたはユーザー名 |
リクエスト例:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/1/keys"SSHキーを取得する
自分のユーザーアカウントのSSHキーを取得します。
前提条件:
- 認証済みである必要があります。
GET /user/keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
key_id | 文字列 | はい | 既存のキーの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キーを取得する
指定されたユーザーアカウントのSSHキーを取得します。このエンドポイントは認証を必要としません。
GET /users/:id/keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのIDまたはユーザー名 |
key_id | 整数 | はい | 既存のキーの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キーを追加
自分のユーザーアカウントにSSHキーを追加します。
前提条件:
- 認証済みである必要があります。
POST /user/keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
title | 文字列 | はい | キーのタイトル |
key | 文字列 | はい | 公開キーの値 |
expires_at | 文字列 | いいえ | キーのISO形式 (YYYY-MM-DD) の有効期限。 |
usage_type | 文字列 | いいえ | キーの使用スコープ。可能な値: auth、signingまたはauth_and_signing。デフォルト値: auth_and_signing |
以下を返します:
成功した場合、ステータス
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キーを追加
指定されたユーザーアカウントにSSHキーを追加します。
これは監査イベントも追加します。
前提条件:
- インスタンスへの管理者アクセス権が必要です。
POST /users/:id/keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのID |
title | 文字列 | はい | キーのタイトル |
key | 文字列 | はい | 公開キーの値 |
expires_at | 文字列 | いいえ | キーのISO形式 (YYYY-MM-DD) の有効期限。 |
usage_type | 文字列 | いいえ | キーの使用スコープ。可能な値: auth、signingまたはauth_and_signing。デフォルト値: auth_and_signing |
以下を返します:
成功した場合、ステータス
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キーを削除する
自分のユーザーアカウントからSSHキーを削除します。
前提条件:
- 認証済みである必要があります。
DELETE /user/keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
key_id | 整数 | はい | 既存のキーのID |
以下を返します:
- 操作が成功した場合のステータス
204 No Content。 - リソースが見つからない場合のステータス
404。
ユーザーのSSHキーを削除
指定されたユーザーアカウントからSSHキーを削除します。
前提条件:
- インスタンスへの管理者アクセス権が必要です。
DELETE /users/:id/keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのID |
key_id | 整数 | はい | 既存のキーのID |
すべてのGPGキーを一覧表示
自分のユーザーアカウントのすべてのGPGキーを一覧表示します。
前提条件:
- 認証済みである必要があります。
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キーを一覧表示
指定されたユーザーアカウントのすべてのGPGキーを一覧表示します。このエンドポイントは認証を必要としません。
GET /users/:id/gpg_keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントの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キーを取得する
自分のユーザーアカウントのGPGキーを取得します。
前提条件:
- 認証済みである必要があります。
GET /user/gpg_keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
key_id | 整数 | はい | 既存のキーの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キーを取得する
指定されたユーザーアカウントのGPGキーを取得します。このエンドポイントは認証を必要としません。
GET /users/:id/gpg_keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのID |
key_id | 整数 | はい | 既存のキーの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キーを追加
自分のユーザーアカウントにGPGキーを追加します。
前提条件:
- 認証済みである必要があります。
POST /user/gpg_keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
key | 文字列 | はい | 公開キーの値 |
リクエスト例:
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キーを追加
指定されたユーザーアカウントにGPGキーを追加します。
前提条件:
- インスタンスへの管理者アクセス権が必要です。
POST /users/:id/gpg_keysサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのID |
key | 整数 | はい | 公開キーの値 |
リクエスト例:
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キーを削除
自分のユーザーアカウントからGPGキーを削除します。
前提条件:
- 認証済みである必要があります。
DELETE /user/gpg_keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
key_id | 整数 | はい | 既存のキーのID |
以下を返します:
- 成功した場合は
204 No Content。 - キーが見つからない場合は
404 Not Found。
ユーザーのGPGキーを削除
指定されたユーザーアカウントからGPGキーを削除します。
前提条件:
- インスタンスへの管理者アクセス権が必要です。
DELETE /users/:id/gpg_keys/:key_idサポートされている属性は以下のとおりです:
| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数 | はい | ユーザーアカウントのID |
key_id | 整数 | はい | 既存のキーのID |