사용자 SSH 및 GPG 키 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

REST API를 사용하여 사용자 SSH 키사용자 GPG 키를 관리할 수 있습니다.

SSH 키 목록 가져오기

SSH 키 목록을 가져옵니다.

필수 조건:

  • 인증되어 있어야 합니다.

이 엔드포인트는 키 목록을 제한하기 위해 페이지 매김 매개변수 pageper_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"
  },
  {
    "id": 3,
    "title": "Another Public key",
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
    "created_at": "2014-08-01T14:47:39.080Z"
  }
]

사용자 SSH 키 목록 가져오기

지정된 사용자의 SSH 키 목록을 가져옵니다.

GET /users/:id_or_username/keys

지원되는 속성:

속성 유형 필수 설명
id_or_username 문자열 SSH 키를 가져올 사용자의 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 문자열 SSH 키의 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"
}

사용자에 대한 단일 SSH 키 가져오기

지정된 사용자에 대한 단일 SSH 키를 가져옵니다.

GET /users/:id/keys/:key_id

지원되는 속성:

속성 타입 필수 설명
id 정수 지정된 사용자의 ID
key_id 정수 SSH 키 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"
}

계정에 SSH 키 추가하기

  • usage_type 매개변수는 GitLab 15.7에서 도입되었습니다.

계정에 대한 새 SSH 키를 만듭니다.

전제 조건:

  • 인증되어 있어야 합니다.
POST /user/keys

지원되는 속성:

속성 타입 필수 설명
title 문자열 새 SSH 키의 제목
key 문자열 새 SSH 키
expires_at 문자열 아니요 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)의 SSH 키 만료일
usage_type 문자열 아니요 SSH 키 사용 범위: 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 키 추가하기

  • usage_type 매개변수는 GitLab 15.7에서 도입되었습니다.

지정된 사용자가 소유한 새 키를 만듭니다.

참고: 이것은 감사 이벤트도 추가합니다.

전제 조건:

  • 관리자가 되어야 합니다.
POST /users/:id/keys

지원되는 속성:

속성 타입 필수 설명
id 정수 지정된 사용자의 ID
title 문자열 새 SSH 키의 제목
key 문자열 새 SSH 키
expires_at 문자열 아니요 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)의 SSH 키 만료일
usage_type 문자열 아니요 SSH 키 사용 범위: 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 정수 SSH 키 ID

다음 중 하나를 반환합니다:

  • 작업이 성공적일 경우 204 No Content 상태 코드.
  • 리소스를 찾을 수 없는 경우 404 상태 코드.

사용자에 대한 SSH 키 삭제

지정된 사용자가 소유한 SSH 키를 삭제합니다.

사전 요구 사항:

  • 관리자인 경우에만 가능합니다.
DELETE /users/:id/keys/:key_id

지원되는 속성:

속성 유형 필수 설명
id 정수 지정된 사용자 ID
key_id 정수 SSH 키 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 정수 GPG 키 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 정수 GPG 키 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 문자열 새 GPG 키

예제 요청:

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_id 정수 GPG 키 ID

예제 요청:

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 정수 GPG 키 ID

반환값:

  • 성공 시 204 No Content.
  • 키를 찾을 수 없는 경우 404 Not Found.

사용자의 GPG 키 삭제

지정된 사용자가 소유한 GPG 키를 삭제합니다.

전제 조건:

  • 관리자가 되어야 합니다.
DELETE /users/:id/gpg_keys/:key_id

지원되는 속성:

속성 유형 필수 여부 설명
id 정수 사용자의 ID
key_id 정수 GPG 키의 ID