반복적인 사용자 이름과 비밀번호 프롬프트는 성가시고 시간을 낭비합니다. 당신이 Gitlab 계정에서 비밀번호 인증을 사용한다면, 각 행동은 명령의 일부로 또는 대화식 프롬프트를 통해 자격 증명을 전송해야 합니다.
특히 GitLab에서 CI/CD 파이프라인을 자동화할 때, 비밀번호 인증은 비효율적이며 가능한 보안 위험이 될 수 있습니다. 왜 아픔을 끝내지 않고 Gitlab SSH 키를 사용한 Secure Shell (SSH) 인증으로 전환하지 않는가요? 계속 읽고 어떻게 하는지 배워봅시다!
이 튜토리얼을 마치고 나면, SSH 키 페어를 생성하고, 키를 사용하여 인증하고, 새로운 Gitlab 프로젝트를 게시하게 될 것입니다.
사전 요구사항
이 튜토리얼은 실질적인 시연입니다. 따라가려면 다음의 요구사항을 준비하세요.
- 당신의 GitLab 계정. 아직 없다면, 먼저 무료 계정에 가입하세요.
- A computer to use as your Gitlab SSH client. This tutorial will be using an Ubuntu 20.04 LTS computer but should work with Windows and macOS too.
- Git 업데이트 또는 설치. 이 글을 쓰는 시점에서 최신 버전은 2.25.1입니다.
Visual Studio Code (VS 코드). 이 튜토리얼의 예제에서는 VS 코드 1.62.3을 사용합니다.
Gitlab SSH 키 쌍 생성
SSH 키 또는 키 쌍은 개인 및 공개 키로 구성됩니다. 간단히 말해서, 개인 키는 클라이언트(귀하의 컴퓨터)가 인증을 위해 서버(Gitlab)에 제공하는 것이고, 공개 키는 서버가 귀하의 개인 키를 해독하는 데 사용하는 것입니다. 그리고 두 키가 일치하면 인증이 통과됩니다.
GitLab은 두 가지 유형의 SSH 키 쌍, 즉 RSA와 ED25519 SSH 키를 지원합니다. 그러나 이 예제에서는 RSA 키보다 보안이 더 강력하다고 여겨지는 ED25519 키 쌍을 생성합니다. SSH 키 쌍을 생성하려면 아래 단계를 따르십시오.
1. 데스크톱에서 터미널 세션을 열고 아래 명령을 실행합니다. 이 명령은 홈 디렉토리를 VS 코드에서 엽니다.
2. VS 코드에서 터미널 —> 새 터미널을 클릭합니다.

3. VS Code 터미널에서 아래의 ssh-keygen -t
명령을 실행하여 ED25519
SSH 키 유형을 생성합니다. 주석 태그 -C
는 선택 사항이지만 키를 더 식별 가능하게 만들기 위해 권장됩니다.
4. 키를 저장할 위치에 대한 다음 프롬프트에서 Enter 키를 눌러 기본 파일 이름을 수락합니다. 파일 이름은 다음과 유사해야 합니다. /home/<사용자명>/.ssh/id_ed25519, 여기서 <사용자명>은 사용자 이름입니다.

5. 다음으로 암호를 비워두고 Enter 키를 두 번 누릅니다. 결과적으로 암호 없는 SSH 키 쌍이 생성됩니다.

이제 아래 스크린샷과 유사한 결과가 표시되어 개인 키 (id_ed25519) 및 공개 키 (id_ed25519.pub) 위치가 표시됩니다.
개인 및 공개 키는 동일한 기본 파일 이름을 갖습니다. 그러나 공개 키는 .pub 확장자가 있고, 개인 키는 확장자가 없습니다.

Gitlab SSH 키를 프로필에 추가하기
개인 키는 컴퓨터에 유지되어야 하며, 공개 키는 Gitlab 서버에 있어야 합니다. 따라서 SSH 키를 생성한 후 다음 단계는 공개 키를 Gitlab 계정에 업로드하는 것입니다. 이를 위해 다음 단계를 따르십시오.
1. VSCode에서 공개 키 파일을 엽니다. 탐색기 창에서 .ssh 폴더를 확장하고 id_es25519.pub를 클릭합니다. 그런 다음 공개 키를 선택하고 클립 보드로 복사합니다.

2. 이제 웹 브라우저를 열고 https://gitlab.com으로 이동하여 Gitlab 계정에 로그인합니다.
3. 로그인한 후에 https://gitlab.com/-/profile/keys에있는 SSH 키 프로필 설정으로 이동하십시오.
- 이전에 복사 한 공개 키를 키 필드에 붙여 넣으십시오.
- 제목 필드는 자동으로 공개 키의 주석 부분으로 채워집니다. 제목 값을 그대로 둬도 되거나 원하는 값으로 입력하십시오.
- 만료 날짜 필드에 만료 날짜를 선택적으로 지정하십시오.
- 마지막으로 키 추가를 클릭하십시오.

Gitlab SSH 키 사용
지금까지 SSH 키를 생성하고 Gitlab 계정에 업로드했습니다. 남은 것은 SSH 키가 작동하는지 테스트하여 Gitlab에 연결하고 인증하는 것입니다.
로그인
VS Code 터미널에서 아래 명령을 실행하여 Gitlab 계정에 연결하십시오.
처음으로 연결하는 경우 명령이 호스트의 신뢰성을 확인하고 연결을 확인하라는 메시지가 표시됩니다. 프롬프트에서 yes
를 입력하고 Enter
를 눌러 확인하십시오.
사용자 이름과 암호를 입력하지 않았음을 유의하십시오. 대신 ssh 명령이 자동으로 인증에 SSH 키를 사용합니다. 성공적으로 로그인하면 ” Gitlab에 오신 것을 환영합니다 @username!“라는 환영 메시지가 표시됩니다.

새 프로젝트 게시
Gitlab SSH 키가 작동하고 성공적으로 인증되는 것을 확인했습니다. 그러나 Gitlab을 통해 Git을 사용하여 상호 작용 할 때도 작동합니까? 새로운 Gitlab 리포지토리를 게시하여 테스트해 보는 것이 어떨까요?
1. 먼저 Git 설정을 초기화하고 Gitlab 계정의 사용자 이름과 이메일 주소를 설정합니다. VS Code 터미널에서 아래 git config
명령을 실행하여 각각 Gitlab 사용자 이름과 이메일 주소를 지정합니다.
실행한 명령은 제공한 정보로 ~/.gitconfig 파일을 업데이트하거나 생성해야 합니다.

2. 다음으로, 새로운 저장소를 위해 홈 디렉터리에 폴더를 만듭니다. 새 폴더의 이름을 my-first-project로 지정합니다.
폴더 이름은 Gitlab 저장소 프로젝트 이름이 됩니다.
3. 아래 명령을 실행하여 저장소를 초기화합니다. 반드시 <username>
을(를) 자신의 Gitlab 사용자 이름으로 변경하세요.
아래 스크린샷과 유사한 확인 메시지가 표시되어야 합니다.

4. 이제 프로젝트에 대한 원격 Git 저장소 주소를 지정합니다. 이 저장소 주소는 SSH 키 또는 사용자 이름과 암호로 인증할 지를 결정합니다.
아래 구문을 찾아보세요. 여기서 <username>
은 Gitlab 사용자 이름이고 <project-name>
은 Gitlab 저장소 이름입니다. 저장소 주소가 [email protected]
으로 시작되는 것을 주목하세요. 이는 SSH 키를 사용하여 인증한다는 것을 나타냅니다.
가정합니다. Gitlab 사용자 이름이 kevin
이고, 저장소 이름이 my-first-project
인 경우에 대한 명령을 터미널에서 다음과 같이 실행하십시오.
5. 다음 명령을 실행하여 리포지토리에 README.md라는 빈 파일을 만듭니다.
6. README.md 파일을 편집하고 다음 내용을 파일에 붙여넣습니다. 편집 후 파일을 저장하십시오. Gitlab SSH 키를 시연하기 위한 내 첫 번째 프로젝트입니다.

7. 이제 Git에게 새로운 README.md 파일을 리포지토리에 추가하고 변경 사항을 커밋하도록 알려주세요.
아래와 유사한 출력이 표시되어야 합니다.

8. 마지막으로, 새로운 리포지토리를 게시할 시간입니다. 컴퓨터에서 Gitlab 계정으로 리포지토리를 푸시하기 위해 아래 명령을 실행하십시오.
아래와 같이 프로젝트 생성이 성공적이며 자격 증명 프롬프트가 없음을 확인할 수 있습니다! Git은 Gitlab과 인증하기 위해 SSH 키를 사용했습니다.

9. 마지막으로, 새로운 Gitlab 프로젝트가 온라인에 있는지 확인합니다. 브라우저를 사용하여 https://gitlab.com/dashboard/projects로 이동하여 기존 프로젝트 목록을 확인할 수 있습니다. 그런 다음 목록에서 my-first-project 이름을 확인해야 합니다.

10. 더 나아가서 프로젝트 이름을 클릭하면 README.md 파일과 내용이 표시됩니다.

결론
이 튜토리얼을 따라오다가 이 정도까지 성공하셨습니다! 이 단계별 튜토리얼을 통해 SSH 키를 생성하고 사용하여 GitLab 리포지토리에 안전한 버전 관리 배포를 할 수 있는 방법을 배웠습니다.
이제 이 지식을 활용하여 GitLab 리포지토리에서 작업을 수행할 때, 사용자 이름과 비밀번호가 노출되지 않는 걱정없이 진행할 수 있습니다.
이전에 GitLab SSH 키 인증을 사용해 보셨나요? 경험은 어떠셨나요? SSH 키를 다른 사람에게 추천하시겠어요, 아니면 피하는 것이 좋을 이유가 있나요? 의견을 알려주세요.