반응형
Theo | 테오
시행착오를 줄이는 방법 - 진태양
Theo | 테오
  • 분류 전체보기 (85)
    • General (30)
      • Essay (23)
      • Craftsmanship (3)
      • IT Meet & Hack (4)
    • Development (45)
      • News (4)
      • Architecture (4)
      • Spring Framework (7)
      • JVM (12)
      • React (0)
      • Next.js (0)
      • Web (1)
      • Git (2)
      • Algorithm (14)
      • Python (1)
    • Security (0)
      • PKI (0)
    • Infrastructure (1)
      • Kubernetes (0)
      • AWS (1)
    • Computer Science (1)
      • Network (1)
    • Civic Hacking (3)
      • Code for Korea (3)
    • Know-how (3)
      • IT Service (2)
      • Career (1)
    • Finance (1)
      • Portfolio (1)
      • Activity (0)
    • English (1)
      • Translation (1)

인기 글

블로그 메뉴

  • 홈
  • 관리
  • 방명록
hELLO · Designed By 정상우.
Theo | 테오

시행착오를 줄이는 방법 - 진태양

여러 깃헙 계정을 SSH 방식으로 사용하는 방법
Development/Git

여러 깃헙 계정을 SSH 방식으로 사용하는 방법

2021. 10. 2. 12:50
반응형

Context

깃헙은 Repository에 Push, Clone 등의 액션을 취할 때 계정을 인증하게끔 되어 있다. public repository라면 설정에 따라 크게 상관없을 수 있으나 private repository 이거나 권한이 엄격히 관리되는 repository라면 인증이 필수적이다.

일반적으로 계정 인증은 계정명/패스워드로 이루어지지만 현재 깃헙에서는 이러한 방식의 인증을 사용할 수 없도록 제한하고 있다.

이를 대체할 수 있는 가장 대표적인 방법이 SSH 인증 방식인데, 많은 사람들이 하나 Mac에서 여러 깃헙 계정을 운영하는 것에 어려움을 겪는 것을 보고 글을 남겨본다. Windows & Linux는 기본적으로 되는 것 같으나 Mac에서는 추가적인 작업이 필요하다.

깃헙 SSH Key 등록

SSH Key를 발급하고 GitHub 계정에 등록하는 과정은 공식 문서(링크)에 자세히 나와있으니 간략하게만 다루겠다. 공식 문서의 과정 중 config 파일 설정은 잠시 생략해도 좋다.

  1. 터미널 실행
  2. GitHub email address를 포함해 아래 명령어 입력
    $ ssh-keygen -t ed25519 -C "your_email@example.com"​
  3. GitHub 계정에 SSH 공개키 등록: 링크

config 파일을 이용한 여러 계정 운용하기

하나의 계정에 대한 ssh 키를 발행하고, GitHub에 공개키 등록까지 마쳤다면, 이제 ssh config 파일을 작성해야 한다.

$ vi ~/.ssh/config

이 곳에 아래와 같은 형태로 작성해주면 된다.

Host github.com
    IdentityFile ~/.ssh/{앞서 생성한 SSH 키 이름}
    HostName github.com
    User {GitHub 사용자명}
    
    
[작성 예시]
Host github.com
    IdentityFile ~/.ssh/github_960813
    HostName github.com
    User 960813

여기까지 완료되었다면 SSH 연동이 완료된 것이다.

이제 Repository를 클론해보자. 일반적인 HTTPS 방식이 아니라 SSH 방식을 사용해야 한다. GitHub Web에서는 Code 버튼을 눌러 URL을 찾을 수 있다.

$ git clone git@github.com:ev-incentive-board/system.git

정상적으로 클론 되었을 것이다.

우리는 여기서 Repository의 URL을 잘 살펴보아야 한다. URL은 크게 3가지 영역으로 구분되는데 이는 다음과 같다.

  • git: SSH 사용자가 git 임을 명시
  • @github.com: SSH를 이용해 액세스하려는 Host
  • ev-incentive-board/system.git: Repository 위치

@github.com 이 핵심이다. 이는 앞서 작성한 config 파일의 Host에 해당하는 부분이다. 즉, 여러 인증서를 사용하려면 이 부분을 적절히 바꿔 원하는 IdentifyFile을 사용하도록하면 된다.

Host github-960813
    HostName github.com
    IdentityFile ~/.ssh/github_960813
    User 960813

Host github-xxxxxxx
    IdentityFile ~/.ssh/github_xxxxxxx
    HostName github.com
    User xxxxxxx

config 파일을 위와같이 설정했다면, repository의 remote-url을 git@github-960813:..... / git@github-xxxxxxx:.... 꼴로 사용하면 정상 동작하는 것을 확인할 수 있을 것이다.

이미 local에서 사용하고 있는 repository라면 아래 명령어를 이용하자.

$ git remote set-url origin git@github-xxxxxx:....
반응형
저작자표시 비영리 동일조건

    ☕️ Networking

    기술 직군의 기술적인 교류, 커리어 이야기, 직군 무관 네트워킹 모두 환영합니다!

    위클리 아카데미 오픈 채팅방(비밀번호: 9323)

    kakaotalk: https://open.kakao.com/o/gyvuT5Yd

    📑 간편 세금계산서 발행, 관리

    볼타: https://bolta.io

    볼타 채용: https://careers.bolta.io

    'Development/Git' 카테고리의 다른 글
    • [GitHub] Repository 언어 분석 설정 변경하기
    Theo | 테오
    Theo | 테오
    Java/Kotlin, Spring 백엔드 관련 기술을 익히고 공유합니다.

    티스토리툴바