InfoGrab Docs

GitLab에서 SSH 키 사용

요약

코드를 push하거나 pull할 때마다 사용자 이름과 비밀번호를 입력하지 않고 SSH 키를 사용하여 GitLab에 안전하게 인증합니다. GitLab에서 SSH 키를 사용하려면: 고급 SSH 키 구성에 대한 정보는 고급 SSH 키 구성을 참조하십시오.

코드를 push하거나 pull할 때마다 사용자 이름과 비밀번호를 입력하지 않고 SSH 키를 사용하여 GitLab에 안전하게 인증합니다.

GitLab에서 SSH 키를 사용하려면:

  1. 로컬 시스템에서 SSH 키 쌍을 생성합니다.
  2. GitLab 계정에 SSH 키를 추가합니다.
  3. GitLab에 대한 연결을 확인합니다.
Note

고급 SSH 키 구성에 대한 정보는 고급 SSH 키 구성을 참조하십시오.

SSH 키란 무엇인가#

SSH는 공개 키와 개인 키의 두 키를 사용합니다.

  • 공개 키는 배포할 수 있습니다.
  • 개인 키는 보호해야 합니다.

공개 키를 업로드해도 기밀 데이터가 노출되지 않습니다. SSH 공개 키를 복사하거나 업로드해야 할 때 실수로 개인 키를 복사하거나 업로드하지 않도록 주의하십시오.

개인 키를 사용하여 커밋에 서명할 수 있으며, 이를 통해 GitLab 사용과 데이터가 더욱 안전해집니다. 이 서명은 공개 키를 사용하는 모든 사람이 확인할 수 있습니다.

자세한 내용은 비대칭 암호화(공개 키 암호화라고도 함)를 참조하십시오.

사전 요건#

GitLab과 SSH로 통신하려면 다음이 필요합니다:

  • GNU/Linux, macOS, Windows 10에 사전 설치된 OpenSSH 클라이언트.
  • SSH 버전 6.5 이상. 이전 버전은 안전하지 않은 MD5 서명을 사용합니다.
Note

시스템에 설치된 SSH 버전을 보려면 ssh -V를 실행합니다.

지원되는 SSH 키 유형#

히스토리
  • GitLab 16.3에서 최대 RSA 키 길이가 변경되었습니다.

GitLab과 통신하기 위해 다음 SSH 키 유형을 사용할 수 있습니다:

알고리즘 참고
ED25519 (권장) RSA 키보다 더 안전하고 성능이 좋습니다. OpenSSH 6.5(2014년)에서 도입되었으며 대부분의 운영 체제에서 사용 가능합니다. 모든 FIPS 시스템에서 완전히 지원되지 않을 수 있습니다. 자세한 내용은 이슈 367429를 참조하십시오.
ED25519_SK 로컬 클라이언트와 GitLab 서버 모두에서 OpenSSH 8.2 이상이 필요합니다.
ECDSA_SK 로컬 클라이언트와 GitLab 서버 모두에서 OpenSSH 8.2 이상이 필요합니다.
RSA ED25519보다 덜 안전합니다. 사용하는 경우 GitLab은 최소 4096비트 키 크기를 권장합니다. Go 제한으로 인해 최대 키 길이는 8192비트입니다. 기본 키 크기는 ssh-keygen 버전에 따라 다릅니다.
ECDSA DSA와 관련된 보안 이슈가 ECDSA 키에도 적용됩니다.

기존 SSH 키 쌍 확인#

키 쌍을 만들기 전에 이미 키 쌍이 있는지 확인합니다.

  1. 홈 디렉토리로 이동합니다.

  2. .ssh/ 하위 디렉토리로 이동합니다. .ssh/ 하위 디렉토리가 없으면 홈 디렉토리에 없거나 이전에 ssh를 사용한 적이 없는 것입니다. 후자의 경우 SSH 키 쌍을 생성해야 합니다.

  3. 다음 형식 중 하나를 가진 파일이 있는지 확인합니다:

    알고리즘 공개 키 개인 키
    ED25519 (권장) id_ed25519.pub id_ed25519
    ED25519_SK id_ed25519_sk.pub id_ed25519_sk
    ECDSA_SK id_ecdsa_sk.pub id_ecdsa_sk
    RSA (최소 4096비트 키 크기) id_rsa.pub id_rsa
    DSA (사용 중단됨) id_dsa.pub id_dsa
    ECDSA id_ecdsa.pub id_ecdsa

SSH 키 쌍 생성#

기존 SSH 키 쌍이 없는 경우 새 키 쌍을 생성합니다:

  1. 터미널을 엽니다.

  2. 키 유형과 나중에 키를 식별하는 데 도움이 되는 선택적 설명을 사용하여 ssh-keygen -t를 실행합니다. 일반적으로 이메일 주소를 설명으로 사용합니다. 설명은 .pub 파일에 포함됩니다.

    예를 들어 ED25519의 경우:

    ssh-keygen -t ed25519 -C "<comment>"
    

    4096비트 RSA의 경우:

    ssh-keygen -t rsa -b 4096 -C "<comment>"
    
  3. Enter를 누릅니다. 다음과 유사한 출력이 표시됩니다:

    Generating public/private ed25519 key pair.
    Enter file in which to save the key (/home/user/.ssh/id_ed25519):
    
  4. 배포 키를 생성하거나 다른 키를 저장하는 특정 디렉토리에 저장하려는 경우가 아니라면 제안된 파일 이름과 디렉토리를 수락합니다.

    SSH 키 쌍을 특정 호스트에 전용으로 사용할 수도 있습니다.

  5. 비밀번호 구문을 지정합니다:

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    

    파일이 저장된 위치에 대한 정보를 포함한 확인이 표시됩니다. 공개 키와 개인 키가 생성됩니다.

  6. ssh-agent에 개인 SSH 키를 추가합니다.

    예를 들어 ED25519의 경우:

    ssh-add ~/.ssh/id_ed25519
    

GitLab 계정에 SSH 키 추가#

히스토리
  • GitLab 15.4에서 키의 기본 만료 날짜 제안이 도입되었습니다.
  • GitLab 15.7에서 SSH 키의 사용 유형이 추가되었습니다.

GitLab에서 SSH를 사용하려면 공개 키를 GitLab 계정에 복사합니다. GitLab은 개인 키에 액세스할 수 없습니다.

SSH 키를 추가하면 GitLab은 알려진 손상된 키 목록에 대해 확인합니다. 관련 개인 키가 공개적으로 알려져 있어 계정 액세스에 사용될 수 있으므로 손상된 키를 추가할 수 없습니다. 이 제한은 구성할 수 없습니다.

키가 차단된 경우 새 SSH 키 쌍을 생성합니다.

GitLab 계정에 SSH 키를 추가하려면:

  1. 공개 키 파일의 내용을 복사합니다. 수동으로 하거나 스크립트를 사용할 수 있습니다.

    이 예시에서 id_ed25519.pub를 파일 이름으로 교체합니다. 예를 들어 RSA의 경우 id_rsa.pub를 사용합니다.

   tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
   xclip -sel clip < ~/.ssh/id_ed25519.pub
   cat ~/.ssh/id_ed25519.pub | clip
  1. GitLab에 로그인합니다.
  2. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  3. Edit profile을 선택합니다.
  4. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  5. Add new key를 선택합니다.
  6. Key 상자에 공개 키의 내용을 붙여 넣습니다. 키를 수동으로 복사한 경우 ssh-rsa, ssh-dss, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519, sk-ecdsa-sha2-nistp256@openssh.com 또는 sk-ssh-ed25519@openssh.com으로 시작하고 설명으로 끝날 수 있는 전체 키를 복사했는지 확인합니다.
  7. Title 상자에 Work Laptop 또는 Home Workstation과 같은 설명을 입력합니다.
  8. 선택사항. 키의 Usage type을 선택합니다. Authentication, Signing 또는 둘 다에 사용할 수 있습니다. Authentication & Signing이 기본값입니다.
  9. 선택사항. 기본 만료 날짜를 수정하려면 Expiration date를 업데이트합니다. 자세한 내용은 SSH 키 만료를 참조하십시오.
  10. Add key를 선택합니다.

SSH 연결 확인#

SSH 키가 올바르게 추가되었는지 확인하고 GitLab 인스턴스에 연결할 수 있는지 확인합니다:

  1. 올바른 서버에 연결하고 있는지 확인하려면 SSH 호스트 키 지문을 식별합니다:
    • GitLab.com의 경우 SSH 호스트 키 지문 문서를 참조합니다.
    • GitLab Self-Managed 또는 GitLab Dedicated의 경우 https://gitlab.example.com/help/instance_configuration#ssh-host-keys-fingerprints를 참조합니다. 여기서 gitlab.example.com은 GitLab 인스턴스 URL입니다.
  2. 터미널을 열고 다음 명령을 실행합니다:
    • GitLab.com의 경우 ssh -T git@gitlab.com을 사용합니다.
    • GitLab Self-Managed 또는 GitLab Dedicated의 경우 ssh -T git@gitlab.example.com을 사용합니다. 여기서 gitlab.example.com은 GitLab 인스턴스 URL입니다.

기본적으로 연결은 git 사용자 이름을 사용하지만 GitLab Self-Managed 또는 GitLab Dedicated 관리자는 사용자 이름을 변경할 수 있습니다.

  1. 첫 번째 연결 시 GitLab 호스트의 신뢰성을 확인해야 할 수 있습니다. 다음과 같은 메시지가 표시되면 화면의 지시를 따릅니다:

    The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established.
    ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
    Are you sure you want to continue connecting (yes/no)?
    

    환영 메시지가 표시됩니다.

    Welcome to GitLab, <username>!
    

    메시지가 표시되지 않으면 SSH 연결 문제를 해결할 수 있습니다.

SSH 키 보기#

계정의 SSH 키를 보려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.

기존 SSH 키가 페이지 하단에 나열됩니다. 정보에는 다음이 포함됩니다:

SSH 키 제거#

SSH 키를 취소하거나 삭제하여 계정에서 영구적으로 제거할 수 있습니다.

키로 커밋에 서명한 경우 SSH 키를 제거하면 추가적인 영향이 있습니다. 자세한 내용은 제거된 SSH 키로 서명된 커밋을 참조하십시오.

SSH 키 취소#

히스토리

SSH 키가 손상된 경우 키를 취소합니다.

사전 요건:

SSH 키를 취소하려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  4. 취소하려는 SSH 키 옆에서 Revoke를 선택합니다.
  5. Revoke를 선택합니다.

SSH 키 삭제#

SSH 키를 삭제하려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  4. 삭제하려는 키 옆에서 Remove ([remove])를 선택합니다.
  5. Delete를 선택합니다.

SSH 키 만료#

계정에 SSH 키를 추가할 때 만료 날짜를 설정할 수 있습니다. 이 선택적 설정은 보안 위반 위험을 제한하는 데 도움이 됩니다.

SSH 키가 만료되면 더 이상 인증하거나 커밋에 서명하는 데 사용할 수 없습니다. 새 SSH 키를 생성하고 계정에 추가해야 합니다.

GitLab Self-Managed 및 GitLab Dedicated에서 관리자는 만료 날짜를 보고 키를 삭제할 때 참고로 사용할 수 있습니다.

GitLab은 만료되는 SSH 키를 매일 확인하고 알림을 보냅니다:

GitLab에서 SSH 키 사용

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

코드를 push하거나 pull할 때마다 사용자 이름과 비밀번호를 입력하지 않고 SSH 키를 사용하여 GitLab에 안전하게 인증합니다. GitLab에서 SSH 키를 사용하려면: 고급 SSH 키 구성에 대한 정보는 고급 SSH 키 구성을 참조하십시오.

코드를 push하거나 pull할 때마다 사용자 이름과 비밀번호를 입력하지 않고 SSH 키를 사용하여 GitLab에 안전하게 인증합니다.

GitLab에서 SSH 키를 사용하려면:

  1. 로컬 시스템에서 SSH 키 쌍을 생성합니다.
  2. GitLab 계정에 SSH 키를 추가합니다.
  3. GitLab에 대한 연결을 확인합니다.
Note

고급 SSH 키 구성에 대한 정보는 고급 SSH 키 구성을 참조하십시오.

SSH 키란 무엇인가#

SSH는 공개 키와 개인 키의 두 키를 사용합니다.

  • 공개 키는 배포할 수 있습니다.
  • 개인 키는 보호해야 합니다.

공개 키를 업로드해도 기밀 데이터가 노출되지 않습니다. SSH 공개 키를 복사하거나 업로드해야 할 때 실수로 개인 키를 복사하거나 업로드하지 않도록 주의하십시오.

개인 키를 사용하여 커밋에 서명할 수 있으며, 이를 통해 GitLab 사용과 데이터가 더욱 안전해집니다. 이 서명은 공개 키를 사용하는 모든 사람이 확인할 수 있습니다.

자세한 내용은 비대칭 암호화(공개 키 암호화라고도 함)를 참조하십시오.

사전 요건#

GitLab과 SSH로 통신하려면 다음이 필요합니다:

  • GNU/Linux, macOS, Windows 10에 사전 설치된 OpenSSH 클라이언트.
  • SSH 버전 6.5 이상. 이전 버전은 안전하지 않은 MD5 서명을 사용합니다.
Note

시스템에 설치된 SSH 버전을 보려면 ssh -V를 실행합니다.

지원되는 SSH 키 유형#

히스토리
  • GitLab 16.3에서 최대 RSA 키 길이가 변경되었습니다.

GitLab과 통신하기 위해 다음 SSH 키 유형을 사용할 수 있습니다:

알고리즘 참고
ED25519 (권장) RSA 키보다 더 안전하고 성능이 좋습니다. OpenSSH 6.5(2014년)에서 도입되었으며 대부분의 운영 체제에서 사용 가능합니다. 모든 FIPS 시스템에서 완전히 지원되지 않을 수 있습니다. 자세한 내용은 이슈 367429를 참조하십시오.
ED25519_SK 로컬 클라이언트와 GitLab 서버 모두에서 OpenSSH 8.2 이상이 필요합니다.
ECDSA_SK 로컬 클라이언트와 GitLab 서버 모두에서 OpenSSH 8.2 이상이 필요합니다.
RSA ED25519보다 덜 안전합니다. 사용하는 경우 GitLab은 최소 4096비트 키 크기를 권장합니다. Go 제한으로 인해 최대 키 길이는 8192비트입니다. 기본 키 크기는 ssh-keygen 버전에 따라 다릅니다.
ECDSA DSA와 관련된 보안 이슈가 ECDSA 키에도 적용됩니다.

기존 SSH 키 쌍 확인#

키 쌍을 만들기 전에 이미 키 쌍이 있는지 확인합니다.

  1. 홈 디렉토리로 이동합니다.

  2. .ssh/ 하위 디렉토리로 이동합니다. .ssh/ 하위 디렉토리가 없으면 홈 디렉토리에 없거나 이전에 ssh를 사용한 적이 없는 것입니다. 후자의 경우 SSH 키 쌍을 생성해야 합니다.

  3. 다음 형식 중 하나를 가진 파일이 있는지 확인합니다:

    알고리즘 공개 키 개인 키
    ED25519 (권장) id_ed25519.pub id_ed25519
    ED25519_SK id_ed25519_sk.pub id_ed25519_sk
    ECDSA_SK id_ecdsa_sk.pub id_ecdsa_sk
    RSA (최소 4096비트 키 크기) id_rsa.pub id_rsa
    DSA (사용 중단됨) id_dsa.pub id_dsa
    ECDSA id_ecdsa.pub id_ecdsa

SSH 키 쌍 생성#

기존 SSH 키 쌍이 없는 경우 새 키 쌍을 생성합니다:

  1. 터미널을 엽니다.

  2. 키 유형과 나중에 키를 식별하는 데 도움이 되는 선택적 설명을 사용하여 ssh-keygen -t를 실행합니다. 일반적으로 이메일 주소를 설명으로 사용합니다. 설명은 .pub 파일에 포함됩니다.

    예를 들어 ED25519의 경우:

    ssh-keygen -t ed25519 -C "<comment>"
    

    4096비트 RSA의 경우:

    ssh-keygen -t rsa -b 4096 -C "<comment>"
    
  3. Enter를 누릅니다. 다음과 유사한 출력이 표시됩니다:

    Generating public/private ed25519 key pair.
    Enter file in which to save the key (/home/user/.ssh/id_ed25519):
    
  4. 배포 키를 생성하거나 다른 키를 저장하는 특정 디렉토리에 저장하려는 경우가 아니라면 제안된 파일 이름과 디렉토리를 수락합니다.

    SSH 키 쌍을 특정 호스트에 전용으로 사용할 수도 있습니다.

  5. 비밀번호 구문을 지정합니다:

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    

    파일이 저장된 위치에 대한 정보를 포함한 확인이 표시됩니다. 공개 키와 개인 키가 생성됩니다.

  6. ssh-agent에 개인 SSH 키를 추가합니다.

    예를 들어 ED25519의 경우:

    ssh-add ~/.ssh/id_ed25519
    

GitLab 계정에 SSH 키 추가#

히스토리
  • GitLab 15.4에서 키의 기본 만료 날짜 제안이 도입되었습니다.
  • GitLab 15.7에서 SSH 키의 사용 유형이 추가되었습니다.

GitLab에서 SSH를 사용하려면 공개 키를 GitLab 계정에 복사합니다. GitLab은 개인 키에 액세스할 수 없습니다.

SSH 키를 추가하면 GitLab은 알려진 손상된 키 목록에 대해 확인합니다. 관련 개인 키가 공개적으로 알려져 있어 계정 액세스에 사용될 수 있으므로 손상된 키를 추가할 수 없습니다. 이 제한은 구성할 수 없습니다.

키가 차단된 경우 새 SSH 키 쌍을 생성합니다.

GitLab 계정에 SSH 키를 추가하려면:

  1. 공개 키 파일의 내용을 복사합니다. 수동으로 하거나 스크립트를 사용할 수 있습니다.

    이 예시에서 id_ed25519.pub를 파일 이름으로 교체합니다. 예를 들어 RSA의 경우 id_rsa.pub를 사용합니다.

   tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy
   xclip -sel clip < ~/.ssh/id_ed25519.pub
   cat ~/.ssh/id_ed25519.pub | clip
  1. GitLab에 로그인합니다.
  2. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  3. Edit profile을 선택합니다.
  4. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  5. Add new key를 선택합니다.
  6. Key 상자에 공개 키의 내용을 붙여 넣습니다. 키를 수동으로 복사한 경우 ssh-rsa, ssh-dss, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519, sk-ecdsa-sha2-nistp256@openssh.com 또는 sk-ssh-ed25519@openssh.com으로 시작하고 설명으로 끝날 수 있는 전체 키를 복사했는지 확인합니다.
  7. Title 상자에 Work Laptop 또는 Home Workstation과 같은 설명을 입력합니다.
  8. 선택사항. 키의 Usage type을 선택합니다. Authentication, Signing 또는 둘 다에 사용할 수 있습니다. Authentication & Signing이 기본값입니다.
  9. 선택사항. 기본 만료 날짜를 수정하려면 Expiration date를 업데이트합니다. 자세한 내용은 SSH 키 만료를 참조하십시오.
  10. Add key를 선택합니다.

SSH 연결 확인#

SSH 키가 올바르게 추가되었는지 확인하고 GitLab 인스턴스에 연결할 수 있는지 확인합니다:

  1. 올바른 서버에 연결하고 있는지 확인하려면 SSH 호스트 키 지문을 식별합니다:
    • GitLab.com의 경우 SSH 호스트 키 지문 문서를 참조합니다.
    • GitLab Self-Managed 또는 GitLab Dedicated의 경우 https://gitlab.example.com/help/instance_configuration#ssh-host-keys-fingerprints를 참조합니다. 여기서 gitlab.example.com은 GitLab 인스턴스 URL입니다.
  2. 터미널을 열고 다음 명령을 실행합니다:
    • GitLab.com의 경우 ssh -T git@gitlab.com을 사용합니다.
    • GitLab Self-Managed 또는 GitLab Dedicated의 경우 ssh -T git@gitlab.example.com을 사용합니다. 여기서 gitlab.example.com은 GitLab 인스턴스 URL입니다.

기본적으로 연결은 git 사용자 이름을 사용하지만 GitLab Self-Managed 또는 GitLab Dedicated 관리자는 사용자 이름을 변경할 수 있습니다.

  1. 첫 번째 연결 시 GitLab 호스트의 신뢰성을 확인해야 할 수 있습니다. 다음과 같은 메시지가 표시되면 화면의 지시를 따릅니다:

    The authenticity of host 'gitlab.example.com (35.231.145.151)' can't be established.
    ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
    Are you sure you want to continue connecting (yes/no)?
    

    환영 메시지가 표시됩니다.

    Welcome to GitLab, <username>!
    

    메시지가 표시되지 않으면 SSH 연결 문제를 해결할 수 있습니다.

SSH 키 보기#

계정의 SSH 키를 보려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.

기존 SSH 키가 페이지 하단에 나열됩니다. 정보에는 다음이 포함됩니다:

SSH 키 제거#

SSH 키를 취소하거나 삭제하여 계정에서 영구적으로 제거할 수 있습니다.

키로 커밋에 서명한 경우 SSH 키를 제거하면 추가적인 영향이 있습니다. 자세한 내용은 제거된 SSH 키로 서명된 커밋을 참조하십시오.

SSH 키 취소#

히스토리

SSH 키가 손상된 경우 키를 취소합니다.

사전 요건:

SSH 키를 취소하려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  4. 취소하려는 SSH 키 옆에서 Revoke를 선택합니다.
  5. Revoke를 선택합니다.

SSH 키 삭제#

SSH 키를 삭제하려면:

  1. 오른쪽 상단 모서리에서 아바타를 선택합니다.
  2. Edit profile을 선택합니다.
  3. 왼쪽 사이드바에서 Access > SSH keys를 선택합니다.
  4. 삭제하려는 키 옆에서 Remove ([remove])를 선택합니다.
  5. Delete를 선택합니다.

SSH 키 만료#

계정에 SSH 키를 추가할 때 만료 날짜를 설정할 수 있습니다. 이 선택적 설정은 보안 위반 위험을 제한하는 데 도움이 됩니다.

SSH 키가 만료되면 더 이상 인증하거나 커밋에 서명하는 데 사용할 수 없습니다. 새 SSH 키를 생성하고 계정에 추가해야 합니다.

GitLab Self-Managed 및 GitLab Dedicated에서 관리자는 만료 날짜를 보고 키를 삭제할 때 참고로 사용할 수 있습니다.

GitLab은 만료되는 SSH 키를 매일 확인하고 알림을 보냅니다: