Git 개인 액세스 토큰 설정 방법

GitBeginner
지금 연습하기

소개

이 튜토리얼에서는 Git 개인 액세스 토큰 (Personal Access Token, PAT) 을 설정하고 구성하는 과정을 안내합니다. 이러한 토큰을 생성, 보호 및 관리하는 방법과 Git 생태계에서 그 중요성을 배우게 됩니다. 이 가이드가 끝나면 안전한 Git 작업을 위해 개인 액세스 토큰을 효과적으로 사용하는 방법에 대한 확실한 이해를 갖게 될 것입니다.

gh auth login

이 Lab 은 학습을 위해 인터넷 연결이 필요하므로, Pro 사용자만 VM 을 시작할 수 있습니다. 계정을 Pro 로 업그레이드하세요.

Git 개인 액세스 토큰 이해

Git 은 개발자가 프로젝트에서 협업하고, 변경 사항을 추적하며, 코드 저장소를 관리할 수 있게 해주는 널리 사용되는 분산 버전 관리 시스템입니다. Git 을 효과적으로 사용하는 데 필수적인 측면은 원격 저장소와 상호 작용할 때 안전한 인증입니다.

개인 액세스 토큰이란 무엇인가요?

개인 액세스 토큰 (PAT) 은 사용자 이름과 비밀번호를 사용하지 않고도 Git 저장소에 안전하게 액세스할 수 있도록 해주는 인증 자격 증명입니다. 비밀번호와 유사하게 작동하지만 몇 가지 장점이 있습니다.

  1. 향상된 보안: PAT 는 기본 계정 비밀번호를 변경하지 않고도 해지하거나 순환할 수 있습니다.
  2. 세분화된 권한: 특정 범위를 할당하여 토큰이 수행할 수 있는 작업을 제한할 수 있습니다.
  3. 자동화 지원: PAT 는 스크립트, CI/CD 파이프라인 및 기타 도구에 대한 프로그래밍 방식 액세스를 가능하게 합니다.
  4. 다단계 인증 호환성: PAT 는 MFA 가 활성화된 계정과 원활하게 작동합니다.

왜 개인 액세스 토큰을 사용해야 하나요?

GitHub, GitLab 및 Bitbucket 을 포함한 많은 Git 호스팅 플랫폼은 Git 작업에 대한 비밀번호 기반 인증을 점차적으로 중단하고 있습니다. 이러한 전환은 주로 보안 문제로 인해 이루어집니다. 개인 액세스 토큰은 장기간 사용되는 광범위한 액세스 자격 증명과 관련된 위험을 줄이는 더 안전한 대안을 제공합니다.

비밀번호 대신 개인 액세스 토큰을 사용하는 경우:

  • 토큰의 기능을 필요한 기능으로만 제한할 수 있습니다.
  • 다양한 목적으로 여러 토큰을 생성할 수 있습니다.
  • 다른 토큰에 영향을 주지 않고 개별 토큰을 해지할 수 있습니다.
  • 액세스 및 사용에 대한 더 나은 감사 추적을 유지합니다.

다음 단계에서는 개인 액세스 토큰을 생성하고 인증에 사용하도록 Git 을 구성합니다.

GitHub 에서 개인 액세스 토큰 생성하기

이 단계에서는 GitHub 에서 개인 액세스 토큰 (Personal Access Token, PAT) 을 생성합니다. 프로세스는 GitLab 또는 Bitbucket 과 같은 다른 Git 플랫폼에서도 유사하며, 사용자 인터페이스에 약간의 차이가 있습니다.

GitHub 에서 토큰 생성하기

개인 액세스 토큰을 생성하려면 다음 단계를 따르세요.

  1. 터미널을 열고 GitHub CLI 도구를 설치합니다. 이 도구는 GitHub 와 상호 작용하는 편리한 방법을 제공합니다.

    sudo apt-get update
    sudo apt-get install -y gh
  2. 다음 명령을 실행하여 GitHub 로 인증합니다.

    gh auth login
    gh auth login

    대화형 프롬프트를 따르세요.

    • 계정에 대해 묻는 메시지가 표시되면 "GitHub.com"을 선택합니다.
    • 선호하는 프로토콜로 "HTTPS"를 선택합니다.
    • GitHub 자격 증명으로 인증하려는 것을 확인합니다.
    • 인증 방법으로 묻는 메시지가 표시되면 "웹 브라우저로 로그인"을 선택합니다.

    일회성 코드가 표시됩니다. GitHub 가 브라우저에서 열리거나, URL 을 방문하여 이 코드를 입력하라는 메시지가 표시됩니다.

  3. 인증에 성공한 후, 새 개인 액세스 토큰을 생성합니다.

    gh auth token

    이 명령은 현재 인증 토큰을 표시합니다. 이 토큰을 복사하여 안전한 위치에 저장합니다. 다음 단계에서 필요합니다.

    특정 범위를 가진 토큰을 직접 생성하려면 다음을 사용할 수 있습니다.

    gh auth refresh -s repo,read:org
    gh auth token

    이렇게 하면 저장소 및 조직 읽기 권한이 있는 토큰이 생성됩니다.

  4. 또는 GitHub 웹사이트에서 직접 토큰을 생성할 수 있습니다.

    gh auth login
    • https://github.com에서 GitHub 를 방문합니다.
    • 오른쪽 상단 모서리에 있는 프로필 사진을 클릭합니다.
    • "Settings"를 선택합니다.
    • 아래로 스크롤하여 왼쪽 사이드바에서 "Developer settings"를 클릭합니다.
    • "Personal access tokens"를 클릭한 다음 "Tokens (classic)"을 클릭합니다.
    • "Generate new token"을 클릭하고 "Generate new token (classic)"을 선택합니다.
    • 토큰에 "Git CLI access"와 같은 설명적인 이름을 지정합니다.
    • 적절한 범위를 선택합니다 (최소한 저장소 액세스를 위해 "repo"를 선택합니다).
    • "Generate token"을 클릭합니다.
    • 생성된 토큰을 복사하여 안전하게 저장합니다.

토큰은 GitHub 에서 한 번만 표시되므로 안전한 위치에 저장하는 것을 잊지 마세요. 분실한 경우 새 토큰을 생성해야 합니다.

Git 을 사용하여 개인 액세스 토큰을 사용하도록 구성하기

이제 개인 액세스 토큰을 생성했으므로, 원격 저장소와 상호 작용할 때 인증에 사용하도록 Git 을 구성해야 합니다. 이를 달성하는 데는 여러 가지 방법이 있습니다.

방법 1: Git 자격 증명 도우미 사용

Git 자격 증명 도우미를 사용하면 Git 이 자격 증명을 기억하므로 매번 입력할 필요가 없습니다.

  1. 터미널을 열고 프로젝트 디렉토리로 이동합니다.

    cd ~/project
  2. 자격 증명을 저장하기 위해 자격 증명 도우미를 사용하도록 Git 을 구성합니다.

    git config --global credential.helper store

    참고: 이렇게 하면 자격 증명이 암호화되지 않은 상태로 디스크에 저장됩니다. 더 안전한 옵션을 사용하려면 대신 캐시 도우미를 사용할 수 있습니다. 캐시 도우미는 자격 증명을 임시로 메모리에 저장합니다.

    git config --global credential.helper 'cache --timeout=3600'

    이렇게 하면 자격 증명이 1 시간 (3600 초) 동안 메모리에 저장됩니다.

  3. 구성을 테스트하기 위해 샘플 Git 저장소를 생성합니다.

    mkdir -p ~/project/test-repo
    cd ~/project/test-repo
    git init
  4. 원격 저장소를 추가합니다 (실제 GitHub 사용자 이름으로 바꿔야 합니다).

    git remote add origin https://github.com/yourusername/test-repo.git
  5. 다음 번에 Git 에서 인증이 필요한 경우 (예: 푸시 또는 풀 시), 자격 증명을 입력하라는 메시지가 표시됩니다. GitHub 사용자 이름을 제공하고 개인 액세스 토큰을 비밀번호로 사용합니다.

방법 2: URL 기반 인증 사용

또 다른 방법은 토큰을 저장소 URL 에 직접 포함하는 것입니다.

  1. 프로젝트 디렉토리에서 토큰으로 원격 저장소 URL 을 구성합니다.

    git remote set-url origin https://YOUR_TOKEN@github.com/yourusername/test-repo.git

    YOUR_TOKEN을 실제 개인 액세스 토큰으로, yourusername을 GitHub 사용자 이름으로 바꿉니다.

  2. 구성을 확인하기 위해 테스트 파일을 생성합니다.

    echo "## Test Repository" > README.md
    git add README.md
    git commit -m "Initial commit"

방법 3: Git 구성 파일 사용

Git 구성 파일을 직접 편집할 수도 있습니다.

  1. 저장소에서 .git/config 파일을 생성하거나 편집합니다.

    nano ~/project/test-repo/.git/config
  2. origin 원격에 대한 URL 을 업데이트하여 토큰을 포함합니다.

    [remote "origin"]
        url = https://YOUR_TOKEN@github.com/yourusername/test-repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*

    YOUR_TOKEN을 실제 개인 액세스 토큰으로, yourusername을 GitHub 사용자 이름으로 바꿉니다.

  3. Ctrl+O 를 누른 다음 Enter 를 눌러 파일을 저장하고 Ctrl+X 로 종료합니다.

보안상의 이유로, 대부분의 사용자는 자격 증명 도우미 방법 (방법 1) 을 사용하는 것이 좋습니다. 이는 구성 파일에 토큰을 직접 저장하는 것을 방지하기 때문입니다.

개인 액세스 토큰 테스트하기

Git 을 개인 액세스 토큰을 사용하도록 구성한 후에는 인증이 올바르게 작동하는지 확인하는 것이 중요합니다. 이 단계에서는 일반적인 Git 작업을 수행하여 토큰을 테스트합니다.

GitHub 에서 테스트 저장소 생성하기

먼저, GitHub CLI 를 사용하여 GitHub 에서 테스트 저장소를 생성해 보겠습니다.

  1. GitHub 에서 새 저장소를 생성합니다.

    cd ~/project
    gh repo create test-pat-repo --private --clone
    cd test-pat-repo

    이 명령은 "test-pat-repo"라는 새 비공개 저장소를 생성하고 로컬 머신으로 복제합니다.

기본 Git 작업 테스트하기

이제 개인 액세스 토큰이 올바르게 작동하는지 확인하기 위해 몇 가지 기본 Git 작업을 수행해 보겠습니다.

  1. 간단한 README 파일을 생성합니다.

    echo "## Test PAT Repository" > README.md
    echo "This repository is used to test Personal Access Token configuration." >> README.md
  2. 파일을 추가하고 커밋합니다.

    git add README.md
    git commit -m "Add README file"
  3. 변경 사항을 GitHub 로 푸시합니다.

    git push -u origin main

    개인 액세스 토큰이 올바르게 구성된 경우, 푸시는 비밀번호를 묻지 않고 성공해야 합니다. 자격 증명 도우미를 사용하고 있고 이것이 첫 번째 푸시인 경우, 사용자 이름과 토큰을 묻는 메시지가 표시될 수 있으며, 이는 나중에 사용하기 위해 저장됩니다.

  4. 저장된 자격 증명을 확인하기 위해 다른 변경 사항을 만듭니다.

    echo "### Additional Information" >> README.md
    echo "This section contains additional information about the repository." >> README.md
    git add README.md
    git commit -m "Update README with additional information"
    git push

    이 두 번째 푸시는 인증 프롬프트 없이 진행되어 토큰이 올바르게 사용되고 있음을 확인해야 합니다.

저장소 액세스 확인

토큰이 올바르게 작동하는지 추가로 확인하려면 저장소를 나열할 수 있습니다.

gh repo list --limit 5

이 명령은 방금 생성한 테스트 저장소를 포함하여 GitHub 저장소 목록을 표시해야 합니다. 이 명령이 성공적으로 실행되면 개인 액세스 토큰에 저장소 액세스에 대한 올바른 권한이 있음을 확인합니다.

이러한 테스트 중에 문제가 발생하면 토큰 구성을 다시 확인하고 토큰에 수행하려는 작업에 필요한 범위 (권한) 가 있는지 확인하십시오.

개인 액세스 토큰 관리 및 순환

개인 액세스 토큰은 비밀번호와 동일한 수준의 주의를 기울여야 합니다. 이 마지막 단계에서는 보안을 유지하기 위해 토큰을 관리하고 순환하는 모범 사례에 대해 논의합니다.

개인 액세스 토큰 나열하기

GitHub 에서 기존 개인 액세스 토큰을 보려면 다음을 수행합니다.

  1. GitHub CLI 사용:

    gh auth status

    이 명령은 사용 중인 토큰을 포함하여 현재 인증 상태에 대한 정보를 표시합니다.

  2. 또는 GitHub 웹 인터페이스를 통해 모든 토큰을 볼 수 있습니다.

    • GitHub.com 으로 이동하여 로그인합니다.
    • 오른쪽 상단의 프로필 사진을 클릭합니다.
    • "설정"을 선택합니다.
    • "개발자 설정" > "개인 액세스 토큰" > "토큰 (클래식)"으로 이동합니다.

토큰 보안 모범 사례

개인 액세스 토큰의 보안을 유지하려면 다음 모범 사례를 따르십시오.

  1. 토큰 범위 제한: 토큰의 의도된 사용에 필요한 최소 권한만 부여합니다.

  2. 설명적인 이름 사용: 토큰에 목적과 사용법을 나타내는 의미 있는 이름을 지정합니다.

  3. 만료 날짜 설정: 중요하지 않은 토큰의 경우, 정기적인 순환을 강제하기 위해 만료 날짜를 설정합니다.

    GitHub CLI 를 사용하여 만료 날짜가 있는 토큰을 생성하려면 다음을 수행합니다.

    gh auth refresh -s repo,read:org --expiry 30d
    gh auth token

    이렇게 하면 30 일 후에 만료되는 토큰이 생성됩니다.

  4. 토큰 정기 감사: 토큰을 주기적으로 검토하고 더 이상 필요하지 않은 토큰을 해지합니다.

  5. 토큰 안전하게 저장: 토큰을 공개 저장소, 암호화되지 않은 파일에 저장하거나 다른 사람과 공유하지 마십시오.

  6. 환경 변수 사용: 스크립트 또는 애플리케이션에서 토큰을 사용할 때는 하드 코딩하는 대신 환경 변수로 저장합니다.

    예를 들어:

    export GITHUB_TOKEN=your_token_here

개인 액세스 토큰 해지하기

토큰이 손상되었거나 더 이상 필요하지 않다고 의심되는 경우 즉시 해지하십시오.

  1. GitHub CLI 사용 (TOKEN 을 토큰으로 바꿉니다):

    gh auth logout

    이렇게 하면 로그아웃되고 현재 토큰이 무효화됩니다.

  2. GitHub 웹 인터페이스를 통해:

    • GitHub.com 으로 이동하여 로그인합니다.
    • "설정" > "개발자 설정" > "개인 액세스 토큰" > "토큰 (클래식)"으로 이동합니다.
    • 해지하려는 토큰을 찾습니다.
    • "삭제"를 클릭하고 작업을 확인합니다.

토큰 순환

정기적인 토큰 순환은 좋은 보안 관행입니다. 토큰을 순환하는 방법은 다음과 같습니다.

  1. 이전 토큰과 동일한 권한으로 새 토큰을 생성합니다.
  2. 애플리케이션 및 구성을 업데이트하여 새 토큰을 사용합니다.
  3. 새 토큰으로 모든 것이 작동하는지 테스트합니다.
  4. 이전 토큰을 해지합니다.

자동화된 프로세스의 경우, 토큰 순환을 더 쉽게 만들기 위해 환경 변수 또는 보안 볼트를 사용하는 것을 고려하십시오.

## Generate a new token
gh auth refresh -s repo,read:org
NEW_TOKEN=$(gh auth token)

## Update your Git remote URL with the new token
git remote set-url origin https://${NEW_TOKEN}@github.com/yourusername/your-repo.git

## Verify it works
git fetch

## Revoke the old token through GitHub website
echo "Remember to revoke your old token in GitHub settings"

이러한 모범 사례를 따르면 무단 액세스 위험을 최소화하면서 Git 저장소에 안전하게 액세스할 수 있습니다.

요약

이 튜토리얼에서는 Git 개인 액세스 토큰을 효과적으로 사용하는 방법을 배웠습니다. 다음은 수행한 작업에 대한 요약입니다.

  1. Git 인증에 개인 액세스 토큰을 사용하는 것의 중요성과 이점을 이해했습니다.
  2. CLI 와 웹 인터페이스를 모두 사용하여 GitHub 에서 개인 액세스 토큰을 생성했습니다.
  3. 저장소 작업에 개인 액세스 토큰을 사용하도록 Git 을 구성했습니다.
  4. 기본 Git 작업을 수행하여 토큰 구성을 테스트했습니다.
  5. 토큰을 관리, 보호 및 순환하는 모범 사례를 배웠습니다.

비밀번호 대신 개인 액세스 토큰을 사용함으로써 Git 워크플로우의 보안을 강화했습니다. 이제 특정 권한으로 토큰을 생성하고, 수명을 제한하며, 주 계정 자격 증명에 영향을 주지 않고 필요할 때 해지할 수 있습니다.

다음 주요 사항을 기억하십시오.

  • 항상 토큰에 필요한 최소 권한을 사용하십시오.
  • 토큰을 안전하게 저장하고 절대 공유하지 마십시오.
  • 특히 민감한 저장소의 경우 토큰을 정기적으로 순환하십시오.
  • 사용하지 않거나 손상된 토큰을 즉시 해지하십시오.

이러한 관행을 통해 보안 위험을 최소화하면서 Git 저장소에 안전하게 액세스할 수 있습니다.