Skip to main content

여러 계정 관리

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

Platform navigation

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 자격 증명 관리자를 사용합니다. 자격 증명을 지우려면 다음 명령을 입력합니다.

      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과 같은 명령을 사용하여 리포지토리의 전체 이름을 소유자와 함께 확인합니다.

  1. 인증에 정확한 SSH 키를 선택합니다.
  2. 그에 따라 GIT_SSH_COMMAND를 수정합니다. GIT_SSH_COMMAND에 대한 자세한 내용은 Git 설명서의 환경 변수를 참조하세요.

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

Shell
GIT_SSH_COMMAND='ssh -i PATH/TO/KEY/FILE -o IdentitiesOnly=yes' git clone git@github.com:OWNER/REPOSITORY

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

관리형 사용자가 있는 엔터프라이즈의 구성원이지만 개인 계정을 사용하여 엔터프라이즈 외부에서 공동 작업하려는 경우 각 계정에 대해 서로 다른 SSH 키를 사용할 수 있습니다. SSH 사용에 관한 자세한 내용은 SSH를 사용하여 GitHub 연결 항목을 참조하세요.

경고

동일한 SSH 키를 사용하여 관리형 사용자가 있는 조직 내부 및 엔터프라이즈 외부의 리포지토리 모두에 기여할 수 없습니다.

  1. 관리형 사용자가 있는 조직의 리포지토리용 별도의 SSH 키를 생성하십시오. 새 SSH 키 생성 및 ssh-agent에 추가을(를) 참조하세요. 키를 저장할 때 기존 키와 다른 파일 이름을 지정합니다(예: 제안된 파일 이름에 -emu 추가).

  2. 관리형 사용자 계정에 새로운 SSH 키를 추가합니다. GitHub 계정에 새 SSH 키 추가을(를) 참조하세요.

  3. 다른 키를 사용하도록 SSH 구성 파일을 ~/.ssh/config 구성합니다. 예를 들어, 개인 SSH 키가 ~/.ssh/id_ed25519이고 관리형 사용자가 있는 엔터프라이즈 SSH 키가 ~/.ssh/id_ed25519-emu일 때

    Text
    Host github.com
        IdentityFile ~/.ssh/id_ed25519
        IdentitiesOnly yes
    
    Host github-emu.com
        Hostname github.com
        IdentityFile ~/.ssh/id_ed25519-emu
        IdentitiesOnly yes
    

    참고

    이 줄은 IdentitiesOnly ssh-agent가 여러 키를 로드한 경우 ssh가 연결할 때 올바른 키를 사용하는지 확인합니다.

  4. 다음 명령을 실행하여 개인 계정과 연결된 SSH 키를 사용하여 연결하여 SSH 구성을 테스트합니다. 자세한 내용은 SSH 연결 테스트 을 참조하세요.

    Shell
    ssh -T git@github.com
    

    GitHub에서 SSH 키를 통해 관리형 사용자가 있는 엔터프라이즈에 정상적으로 연결되는지 테스트를 진행해 보시기 바랍니다.

    Shell
    ssh -T git@github-emu.com
    
  5.           `git`에게 관리형 사용자가 있는 조직에서 리포지토리를 다운로드하거나 업로드할 때 올바른 키를 사용할 것을 지시하세요. 
    

    관리형 사용자가 있는 엔터프라이즈에서 조직 목록을 확인하려면 1. GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, Your organizations를 클릭합니다.

    1. 나열된 각 조직에 대해 git에게 github-emu.com 호스트를 사용하도록 지시합니다.

    예를 들어 조직 중 하나가 octocat-emu로 호출되었다면, git에서 조직의 리포지토리에 대해 호스트 github-emu.com를 사용하도록 설정하려면 다음 명령을 실행합니다.

    Shell
    git config --global url."git@github-emu.com:octocat-emu/".insteadOf "git@github.com:octocat-emu/"
    

이제 octocat-emu 조직에서 git를 사용하여 SSH로 리포지토리를 복제할 때, 개인 키 대신 관리형 사용자가 있는 엔터프라이즈에 연결된 SSH 키가 사용됩니다.

다음 단계

참조 정보는 개인 계정 참조을(를) 참조하세요.