Skip to main content

여러 계정 관리

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

Platform navigation

여러 계정 관리 정보

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

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

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

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

Warning

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

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

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

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

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

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

SSH를 사용하여 리포지토리에 액세스하는 방법에 대한 자세한 내용은 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 git@github.com:OWNER/REPOSITORY