사용자 SSH 및 GPG 키 API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 사용자의 SSH 키와 GPG 키와 상호 작용합니다. 사용자 계정의 모든 SSH 키를 나열합니다. page 및 per_page 페이지네이션 매개변수를 사용하여 결과를 필터링합니다. 지정된 사용자 계정의 모든 SSH 키를 나열합니다.
이 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 |
string | 예 | 사용자 계정의 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 |
string | 예 | 기존 키의 ID |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/keys/1"
응답 예시:
{
"id": 1,
"title": "Public key",
"key": "",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "auth"
}
사용자의 SSH 키 조회#
지정된 사용자 계정의 SSH 키를 조회합니다. 이 엔드포인트는 인증이 필요하지 않습니다.
GET /users/:id/keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID 또는 사용자 이름 |
key_id |
integer | 예 | 기존 키의 ID |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/users/1/keys/1"
응답 예시:
{
"id": 1,
"title": "Public key",
"key": "",
"created_at": "2014-08-01T14:47:39.080Z",
"usage_type": "auth"
}
SSH 키 추가#
히스토리
usage_type매개변수가 GitLab 15.7에서 도입.
사용자 계정에 SSH 키를 추가합니다.
사전 조건:
- 인증되어 있어야 합니다.
POST /user/keys
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
title |
string | 예 | 키 제목 |
key |
string | 예 | 공개 키 값 |
expires_at |
string | 아니요 | ISO 형식(YYYY-MM-DD)의 키 만료 날짜. |
usage_type |
string | 아니요 | 키의 사용 범위. 가능한 값: 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": "",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
사용자에게 SSH 키 추가#
히스토리
usage_type매개변수가 GitLab 15.7에서 도입.
지정된 사용자 계정에 SSH 키를 추가합니다.
이 작업은 감사 이벤트도 추가합니다.
사전 조건:
- 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
POST /users/:id/keys
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
title |
string | 예 | 키 제목 |
key |
string | 예 | 공개 키 값 |
expires_at |
string | 아니요 | ISO 형식(YYYY-MM-DD)의 키 만료 날짜. |
usage_type |
string | 아니요 | 키의 사용 범위. 가능한 값: 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": "",
"expires_at": "2016-01-21T00:00:00.000Z",
"usage_type": "auth"
}
SSH 키 삭제#
사용자 계정에서 SSH 키를 삭제합니다.
사전 조건:
- 인증되어 있어야 합니다.
DELETE /user/keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
key_id |
integer | 예 | 기존 키의 ID |
반환 값:
- 작업이 성공한 경우
204 No Content상태 코드. - 리소스를 찾을 수 없는 경우
404상태 코드.
사용자의 SSH 키 삭제#
지정된 사용자 계정에서 SSH 키를 삭제합니다.
사전 조건:
- 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
DELETE /users/:id/keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
key_id |
integer | 예 | 기존 키의 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": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
사용자의 모든 GPG 키 목록#
지정된 사용자 계정의 모든 GPG 키를 나열합니다. 이 엔드포인트는 인증이 필요하지 않습니다.
GET /users/:id/gpg_keys
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/2/gpg_keys"
응답 예시:
[
{
"id": 1,
"key": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
GPG 키 조회#
사용자 계정의 GPG 키를 조회합니다.
사전 조건:
- 인증되어 있어야 합니다.
GET /user/gpg_keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
key_id |
integer | 예 | 기존 키의 ID |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/user/gpg_keys/1"
응답 예시:
{
"id": 1,
"key": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
사용자의 GPG 키 조회#
지정된 사용자 계정의 GPG 키를 조회합니다. 이 엔드포인트는 인증이 필요하지 않습니다.
GET /users/:id/gpg_keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
key_id |
integer | 예 | 기존 키의 ID |
요청 예시:
curl --header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/users/2/gpg_keys/1"
응답 예시:
{
"id": 1,
"key": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
GPG 키 추가#
사용자 계정에 GPG 키를 추가합니다.
사전 조건:
- 인증되어 있어야 합니다.
POST /user/gpg_keys
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
key |
string | 예 | 공개 키 값 |
요청 예시:
export KEY="$(gpg --armor --export <your_gpg_key_id>)"
curl --data-urlencode "key=" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/user/gpg_keys"
응답 예시:
[
{
"id": 1,
"key": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
사용자에게 GPG 키 추가#
지정된 사용자 계정에 GPG 키를 추가합니다.
사전 조건:
- 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
POST /users/:id/gpg_keys
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
key |
integer | 예 | 공개 키 값 |
요청 예시:
curl --data-urlencode "key=" \
--header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/2/gpg_keys"
응답 예시:
[
{
"id": 1,
"key": "",
"created_at": "2017-09-05T09:17:46.264Z"
}
]
GPG 키 삭제#
사용자 계정에서 GPG 키를 삭제합니다.
사전 조건:
- 인증되어 있어야 합니다.
DELETE /user/gpg_keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
key_id |
integer | 예 | 기존 키의 ID |
반환 값:
- 성공 시
204 No Content. - 키를 찾을 수 없는 경우
404 Not Found.
사용자의 GPG 키 삭제#
지정된 사용자 계정에서 GPG 키를 삭제합니다.
사전 조건:
- 인스턴스에 대한 관리자 접근 권한이 있어야 합니다.
DELETE /users/:id/gpg_keys/:key_id
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 사용자 계정의 ID |
key_id |
integer | 예 | 기존 키의 ID |
