Github 여러 계정 사용하기
Github 여러 계정 사용하기
회사 또는 다른 조직에서 활동을 하는 경우 보통 새로운 Github 계정들을 활용하여 작업을 진행하게 됩니다.
보통 작업을 진행하다 보면 하나의 디바이스에서 여러 계정들에 접근해서 작업을 진행하는 경우 인증 문제가 발생하는 경우가 많습니다. 이전에는 Git에서 Github 아이디, 패스워드 방식의 인증을 통해서 진행했지만 2021-08-13일부터 Git에서 Github 패스워드 인증 방식을 제공하지 않기 시작하면서 토큰(Personal Access, OAuth, SSH Key) 방식의 인증 방식을 사용하도록 하고 있습니다.

하나의 디바이스에서 여러 계정들에 손쉽게 접근하여, 인증되고 작업을 진행할 수 있는 설정에 대해서 설명합니다. 설명하고 있는 내용은 wsl 환경을 기준으로 진행하고 있습니다.
1. 공식 문서 확인하기
Github 공식 문서의 인증에 관련된 문서를 확인해봅니다.
기본적으로 SSH Key를 생성하고 ssh-agent에 추가하여 SSH 인증을 통해서 사용하는 방법에 대해서 소개하고 있습니다.
2. SSH란?
SSH(Secure Shell)는 안전하지 않은 네트워크에서 안전한 시스템 관리와 파일 전송을 가능하게 하는 소프트웨어 패키지입니다.
- SSH 프로토콜(22 Port)을 통해서 보안 원격 로그인 및 파일 전송을 할 수 있습니다.
서버와 클라이언트로 구성되어 연결을 맺어 통신하는 구조이며 현재 다양한 무료 SSH 및 상업용 SSH 구현도 존재합니다.
SSH는 공개 키 인증(Public Key Authentication)방식의 암호화된 키를 기반의 인증을 제공합니다.
개인 키를 통해서 서버의 공개 키를 인증합니다. 개인키 및 공개키 모두 사용자 홈 > .ssh 디렉토리에 저장됩니다.

SSH에서는 설정 파일을 통해서 지정한 패턴 형식을 간단하게 적용하여 사용할 수 있습니다.
~/.ssh/config파일
3. 설정하기
SSH 키 생성하기
- Github 메일 주소 형식으로 수정하여 Key 생성하기
- 생성하면 공개키와 개인키가 생성된 것을 확인 할 수 있습니다.
- 기기에서 사용할 Github 계정 수만큼 파일이름을 구분하여 해당 과정을 반복하면 됩니다.
cd ~/.ssh
ssh-keygen -t ed25519 -C "example@example.com"
# > Generating public/private ed25519 key pair.
# > Enter file in which to save the key (/home/user/.ssh/id_ed25519): id_ed25519_github_user1
# > Enter passphrase (empty for no passphrase):
# > Enter same passphrase again:
# > Your identification has been saved in id_ed25519_github_user1
# > Your public key has been saved in id_ed25519_github_user1.pub
# > The key fingerprint is:
# > SHA256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA example@example.com
# > The key's randomart image is:
# > +--[ED25519 256]--+
# > +----[SHA256]-----+
ls
# > config id_ed25519_github_user1.pub id_ed25519_github_user1
ssh-agent에 SSH 키 추가
- ssh-agent를 실행 후 agent에 생성된 개인 키를 등록합니다.
- 기기에서 사용할 Github 계정 수만큼 생성된 개인 키 등록 과정을 진행해야 합니다,
eval "$(ssh-agent -s)"
# > Agent pid 59566
ssh-add ~/.ssh/id_ed25519_github_user1
ssh config 설정하기
- ssh config를 설정하면 손쉽게 여러 계정 설정으로 접근할 수 있기 때문에 해당 설정을 진행하면 좋습니다.
- vi, vim, nano, notepad 등의 에디터 명령어를 활용하여
config파일을 작성하면 됩니다.
vim ~/.ssh/config
#Gitub User1 계정에 대한 SSH 설정
Host github.com-User1
HostName github.com
User User1
IdentityFile ~/.ssh/id_ed25519_github_user1
#Github User2 계정에 대한 SSH 설정
Host github.com-User2
HostName github.com
User User2
IdentityFile ~/.ssh/id_ed25519_github_user2
SSH pub Key 등록하기
- 로컬에서 생성한 SSH 공개키를 Github에 등록합니다.
- Github > 프로필 > Settings > SSH and GPG Keys > New SSH Key
- Title : 어떤 기기의 SSH Key인지 구분할 수 있는 이름
- Key type : Authentication Key
- Key
- 공개키 파일의 값을 복사하여 붙여 넣기합니다.
cat ~/.ssh/id_ed25519_github_user1.pub

동작 확인하기
인증이 필요한 개인 레포를 클론해봅니다.
git clone git@github.com-User1:User1/myRepo.git
# Cloning into 'myRepo'...
# remote: Enumerating objects: 161841, done.
# remote: Counting objects: 100% (15/15), done.
# remote: Compressing objects: 100% (11/11), done.
# remote: Total 161841 (delta 4), reused 11 (delta 4), pack-reused 161826 (from 1)
# Receiving objects: 100% (161841/161841), 164.39 MiB | 8.70 MiB/s, done.
# Resolving deltas: 100% (130261/130261), done.
4. 마치며
다양한 계정 인증을 기기에서 진행할 수 있도록 설정해보았습니다.
Github에서는 SSH 방법 말고 Personal Access 토큰 방식의 인증도 지원하고 있습니다.
해당 토큰을 사용하면, 간단하게 누군가 또는 기기에 특정 권한 범위 및 유효 기간 등을 디테일하게 지정하여 Github에 접근하게 허용할 수 있습니다.
다음 시간에는 해당 방법을 통해서 인증하는 방법을 알아보겠습니다.
'Git' 카테고리의 다른 글
| 20210113_GitHub 복습 및 명령어 정리 (0) | 2021.01.14 |
|---|---|
| 20201231_GitHubPage(Github Page +Jekyll) (0) | 2021.01.02 |
| 20201230_Github Blog , 윈도우 단축키 팁 (0) | 2020.12.31 |
| 20201229_GitHub (0) | 2020.12.30 |
| 20201228_Git, GitHub (0) | 2020.12.29 |