Skip to main content

여러 계정 관리

1개의 워크스테이션을 사용하여 둘 이상의 계정에 대한 프로젝트에 기여하는 경우, Git 구성을 수정하여 기여 프로세스를 간소화할 수 있습니다.

Platform navigation

여러 계정 관리 정보

경우에 따라 GitHub에서 여러 계정을 사용해야 할 수 있습니다. 예를 들어 오픈 소스 기여를 위한 개인 계정이 있을 수 있으며, 고용주는 엔터프라이즈 내에서 사용자 계정을 만들고 관리할 수도 있습니다.

를 사용하여 GitHub의 퍼블릭 프로젝트에 기여할 수 없으므로 이러한 리소스에는 개인 계정을 사용하여 기여해야 합니다. 자세한 내용은 GitHub Enterprise Cloud 설명서의 "Enterprise Managed Users 정보"를 참조하세요.

여러 개의 계정을 사용해야 하는 경우 계정에 로그인한 상태를 유지하면서 계정 간에 전환할 수 있습니다. 예시, 개인 계정 및 서비스 계정 간 전환 자세한 내용은 "계정 간 전환"을(를) 참조하세요.

워크스테이션 하나를 사용하여 두 계정에서 기여하려는 경우 혼합한 프로토콜을 사용하여 리포지토리 데이터에 액세스하거나 리포지토리별로 자격 증명을 사용하여 Git에서 기여를 간소화할 수 있습니다.

Warning

워크스테이션 하나를 사용하여 별도 계정 두 개에 기여하는 경우 주의해야 합니다. 둘 이상의 계정을 관리하면 실수로 내부 코드가 유출될 가능성이 높아질 수 있습니다.

를 사용할 필요가 없는 경우 GitHub에서 에 대한 모든 작업에 하나의 개인 계정을 사용하는 것이 좋습니다. 단일 개인 계정을 사용하면 하나의 ID를 사용하여 개인, 오픈 소스 또는 전문 프로젝트의 조합에 기여할 수 있습니다. 다른 사용자는 계정을 초대하여 개인 리포지토리와 조직 소유 리포지토리 둘 다에 기여할 수 있으며, 이 계정은 여러 조직 또는 기업의 구성원일 수 있습니다.

HTTPS 및 SSH를 사용하여 두 계정에 기여

워크스테이션 하나에서 계정 두 개에 기여하는 경우 각 계정에 대해 다른 프로토콜 및 자격 증명을 사용하여 리포지토리에 액세스할 수 있습니다.

Git은 HTTPS 또는 SSH 프로토콜을 사용하여 GitHub의 리포지토리에서 데이터에 액세스하고 업데이트할 수 있습니다. 리포지토리를 복제하는 데 사용하는 프로토콜은 리포지토리에 액세스할 때 워크스테이션이 인증하는 데 사용할 자격 증명을 결정합니다. 계정 관리에 이 방법을 사용하면 HTTPS 연결에 사용할 계정의 자격 증명을 저장하고 SSH 연결에 사용할 다른 계정에 SSH 키를 업로드합니다.

리포지토리 페이지에서 리포지토리를 복제하기 위한 HTTPS 또는 SSH URL을 모두 찾을 수 있습니다. 자세한 내용은 "리포지토리 복제"을(를) 참조하세요.

SSH를 사용하여 GitHub의 리포지토리에 액세스하는 방법에 대한 자세한 내용은 "SSH를 통한 GitHub 연결" 항목을 참조하세요.

HTTPS 및 personal access token을(를) 사용하여 여러 계정에 기여

또는 두 계정에 HTTPS 프로토콜을 사용하려는 경우 각 리포지토리에 대해 서로 다른 자격 증명을 저장하도록 Git을 구성하여 각 계정에 대해 서로 다른 personal access token을(를) 사용할 수 있습니다.

  1. 터미널을 엽니다.

  2. 자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.

    Shell
    git config --get credential.helper
    
  3. 출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.

  • 출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.
    • 출력이 osxkeychain인 경우 macOS KeyChain을 사용합니다. 자격 증명을 지우려면 명령줄에서 다음 자격 증명 도우미를 사용할 수 있습니다.

      $ git credential-osxkeychain erase
      host=github.com
      protocol=https
      > [Press Return]
      >
      
    • 출력이 manager인 경우(이전 버전에서는 manager-core) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.

      Shell
      echo "protocol=https\nhost=github.com" | git credential-manager erase
      
  1. GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. 각 계정에 대해 repo 범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요.

  3. Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.

    Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.

  1. Git Bash를 엽니다.

  2. 자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.

    Shell
    git config --get credential.helper
    
  3. 출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.

  • 출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.

  • 출력이 manager인 경우(이전 버전에서는 manager-core) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.

    Shell
    echo "protocol=https`nhost=github.com" | git credential-manager erase
    
    • 출력이 wincred인 경우 Windows Credential Manager를 사용합니다. 자격 증명을 지우려면 다음 명령을 입력합니다.

      Shell
      cmdkey /delete:LegacyGeneric:target=git:https://github.com
      
  1. GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. 각 계정에 대해 repo 범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요.

  3. Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.

    Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.

  1. 터미널을 엽니다.

  2. 자격 증명 관리자의 사용을 확인하려면 다음 명령을 입력하고 출력을 확인합니다.

    Shell
    git config --get credential.helper
    
  3. 출력에서 자격 증명 관리자를 사용하고 있음을 확인하는 경우 자격 증명 관리자에 대해 저장된 자격 증명을 지웁니다.

  • 출력에 자격 증명 관리자의 이름이 포함되지 않으면 구성된 자격 증명 관리자가 없는 것입니다. 따라서 다음 단계를 진행할 수 있습니다.

  • 출력이 manager인 경우(이전 버전에서는 manager-core) Git 자격 증명 관리자를 사용하는 것입니다. 자격 증명을 지우려면 다음 명령을 실행합니다.

    Shell
    echo "protocol=https\nhost=github.com" | git credential-manager erase
    
  1. GitHub에서 액세스하는 각 리포지토리의 전체 원격 URL에 대한 자격 증명을 캐시하도록 Git을 구성하려면 다음 명령을 입력합니다.

    Shell
    git config --global credential.https://github.com.useHttpPath true
    
  2. 각 계정에 대해 repo 범위가 있는 전용 personal access token (classic)을(를) 만듭니다. 또는 각 계정 및 구성원인 각 조직에 대해 원하는 리포지토리에 액세스할 수 있고 리포지토리 콘텐츠에 대한 읽기 및 쓰기 권한이 있는 fine-grained personal access token을(를) 만듭니다. 자세한 내용은 "개인용 액세스 토큰 관리"을 참조하세요.

  3. Git을 사용하여 리포지토리를 복제하거나 이미 복제한 리포지토리의 데이터에 액세스할 때 처음으로 Git에서 자격 증명을 요청합니다. 리포지토리에 액세스할 수 있는 계정의 personal access token을(를) 제공합니다.

    Git이 리포지토리의 전체 원격 URL을 기반으로 personal access token을(를) 캐시할 것이며, 그러면 올바른 계정을 사용하여 GitHub.com에서 리포지토리 데이터에 액세스하고 쓸 수 있습니다.

SSH 및 GIT_SSH_COMMAND를 사용하여 여러 계정에 기여

두 계정에 대해 SSH 프로토콜을 사용하려는 경우 각 계정에 대해 서로 다른 SSH 키를 사용할 수 있습니다. SSH 사용에 관한 자세한 내용은 "SSH를 통한 GitHub 연결" 항목을 참조하세요.

워크스테이션에 복제하는 리포지토리마다 다른 SSH 키를 사용하려면 Git 작업에 대한 셸 래퍼 함수를 작성해야 합니다. 이 함수는 다음 단계를 수행해야 합니다.

  1. git config --get remote.origin.url과 같은 명령을 사용하여 소유자와 함께 리포지토리의 전체 이름을 확인합니다.
  2. 인증에 정확한 SSH 키를 선택합니다.
  3. 그에 따라 GIT_SSH_COMMAND를 수정합니다. GIT_SSH_COMMAND에 대한 자세한 내용은 Git 설명서의 환경 변수를 참조하세요.

예를 들어, 다음 명령은 인증에 PATH/TO/KEY/FILE 에 있는 프라이빗 키 파일을 사용하여 GitHub.com에서 OWNER/REPOSITORY라는 리포지토리를 복제하는 SSH 명령을 지정하도록 GIT_SSH_COMMAND 환경 변수를 설정합니다.

Shell
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone [email protected]:OWNER/REPOSITORY