반응형
Heli, 헬리
시행착오를 줄이는 방법 - 진태양
Heli, 헬리
  • 분류 전체보기 (81)
    • General (27)
      • Essay (22)
      • Craftsmanship (2)
      • IT Meet & Hack (3)
    • Finance (1)
      • Portfolio (1)
      • Activity (0)
    • Infrastructure (1)
      • Kubernetes (0)
      • AWS (1)
    • Development (45)
      • News (4)
      • Architecture (4)
      • Web (1)
      • Spring Framework (7)
      • JVM (12)
      • MongoDB (0)
      • Git (2)
      • Algorithm (14)
      • Python (1)
    • Computer Science (1)
      • Network (1)
    • Civic Hacking (3)
      • Code for Korea (3)
    • Know-how (2)
      • IT Service (1)
      • Career (1)
    • English (1)
      • Translation (1)

인기 글

  • IT 엔지니어 커리어 백과 #1 - 하나에 집중하기 vs ⋯
    2023.01.16
    IT 엔지니어 커리어 백과 #1 - 하나에 집중하기 vs ⋯
  • Why DDD, Clean Architecture and ⋯
    2022.03.10
    Why DDD, Clean Architecture and ⋯
  • 내가 개발 커뮤니티를 하는 이유 (a.k.a 10년 회고)
    2022.12.04
    내가 개발 커뮤니티를 하는 이유 (a.k.a 10년 회고)
  • [번역] 개발자가 잠자는 동안 돈을버는 5가지 방법 | 사⋯
    2022.04.17
    [번역] 개발자가 잠자는 동안 돈을버는 5가지 방법 | 사⋯
  • SpringBoot에서 STOMP로 채팅 애플리케이션 만들⋯
    2021.12.14
    SpringBoot에서 STOMP로 채팅 애플리케이션 만들⋯

블로그 메뉴

  • 홈
  • 관리
  • 방명록
hELLO · Designed By 정상우.
Heli, 헬리

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

여러 깃헙 계정을 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

    1:1 네트워킹은 센드타임으로 예약 부탁드립니다.

    sendtime: https://sendtime.io/@sun

    'Development/Git' 카테고리의 다른 글
    • [GitHub] Repository 언어 분석 설정 변경하기
    깃헙, 깃헙 SSH, 깃헙 계정 여러개, 깃헙 설정
    Heli, 헬리
    Heli, 헬리
    Java/Kotlin, Spring 백엔드 관련 기술을 익히고 공유합니다.
    [GitHub] Repository 언어 분석 설정 변경하기
    다음 글
    [GitHub] Repository 언어 분석 설정 변경하기

    티스토리툴바