GIT - 다중 사용자

추상적인



다른 프로젝트에서 작업할 때 때때로 다른 git 공급자(예: GitHub, GitLab, Gitea 등)가 있습니다.
또한 기여를 위해 다른 사용자를 사용해야 할 수도 있습니다.
https와 함께 git을 사용하면 분명히 가능합니다.
ssh는 git 컨텍스트에서 더 안전한 것으로 간주되기 때문에 여러 ssh 키를 관리해야 합니다.

필요한 키를 지정할 수 있습니다. 예를 들어

GIT_SSH_COMMAND='ssh -i private_key_file -o IdentitiesOnly=yes' git clone user@host:repo.git


보시다시피 이것은 매우 편리하지 않습니다.
ssh 구성 파일을 사용하는 더 쉬운 방법이 있습니다.

이론



~/.ssh/config 파일로 ssh를 구성할 수 있습니다.
비고 관심이 있는 경우 사용 가능한 모든 구성 매개변수를 찾을 수 있습니다here.
다음 매개 변수를 사용하여 호스트와 관련된 ID를 설정할 수 있습니다.

Host <host>:<port>
  HostName <host>
  Port <port>
  IdentityFile <path_to_id_file>


  • 호스트: 호스트 이름을 추가합니다.
  • HostName: 도메인, e.q. github.com, gitlab.com, ...
  • IdentityFile: 특정 개인 ssh 인증서에 대한 절대 경로
  • 포트 [선택 사항]: 자체 git 제공자 서비스가 실행 중인 경우에만 사용하십시오
  • .


    예시



    설정



    어떻게든 2개의 다른 git 공급자(예: GitHub, GitLab 등)에서 2명의 사용자를 확보합니다.
    이제 2개의 서로 다른(공용/개인) ssh 키 쌍을 생성해 보겠습니다.

    ssh-keygen -t rsa -N "" -C "<first_user_mail>" -f '~/.ssh/id_rsa_first'
    ssh-keygen -t rsa -N "" -C "<second_user_mail>" -f '~/.ssh/id_rsa_second'
    


    git 공급자에 ssh를 사용하려면 git 공급자 설정에 개인 키를 추가해야 합니다.

    cat ~/.ssh/id_rsa_first.pub
    cat ~/.ssh/id_rsa_second.pub
    


    이 단계는 git 공급자에 따라 다릅니다.

    이제 git 공급자와 관련된 파일을 사용하도록 git ssh를 구성하려고 합니다.

    touch ~/.ssh/config
    


    파일에 다음 내용을 추가합니다.
    호스트 이름은 git 공급자에 따라 다릅니다.

    # user 1
    Host <first_git_provider>
      HostName <hostname_1>
      IdentityFile ~/.ssh/id_rsa_first
    
    # user 2
    Host <second_git_provider>
      HostName <hostname_2>
      IdentityFile ~/.ssh/id_rsa_second
    


    ~/.ssh/config로

    테스트



    이제 설정을 테스트할 준비가 되었습니다.
    먼저 2개의 저장소를 생성합니다. 각 git 제공자에 하나씩.

    이제 리포지토리를 복제할 수 있습니다. cd 선택한 디렉토리에 있습니다.

    git clone <ssh_clone_url_1>
    git clone <ssh_clone_url_2>
    


    리포지토리를 복제하려고 합니다.
    예, 작동합니다 🚀

    보시다시피 올바른 사용자가 자동으로 선택됩니다 🚀

    좋은 웹페이지 즐겨찾기