正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

ユーザー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文字列いいえキーの使用スコープ。可能な値: authsigningまたは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文字列いいえキーの使用スコープ。可能な値: authsigningまたは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