일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IAMPORT
- 자바
- 오블완
- camel case
- 운영체제
- json string
- git
- git pull
- 소비통장
- 아임포트
- github
- 취성패
- 티스토리챌린지
- 런던뮤지컬
- vmware workstation player
- snake case
- window10
- 취업
- window10 Education
- 정처기
- ObjectMapper
- java
- 윈도우10 Education
- Spring Boot
- 방송대
- git pull --rebase
- window11 Education
- window11
- 방통대
- git 설정
- Today
- Total
홍차의 미로찾기
[github] mac에서 여러 개의 github 계정 사용 (SSH 연결) 본문
1. github 인증 방식
1) PAT (Personal Access Token)
github 계정의 비밀번호 대신 사용 가능한 토큰으로, https를 통해 github에 접근할 때 주로 사용됩니다.
노출 시 재발급이 필요하며, 개인PC에서 토큰을 관리합니다.
2) SSH 방식
SSH 프로토콜을 사용하여 github repository에 접근하는 방식입니다.
SSH Key 페어를 사용하여 인증을 처리하는 방식으로, 공개키와 비밀키를 사용합니다.
1. private key, public key를 생성합니다.
2. private key(비밀키)는 local Mac에 저장해둡니다.
3. public key(공개키)는 Github에 등록해놓고, 이렇게 등록한 public key를 이용하여 ssh 연결을 설정합니다.
이렇게 local에 등록해 둔 비밀키를 가지고 공개키가 등록된 Github repository에 접근할 수 있습니다.
한 번 설정하면 git push, git pull 과 같은 원격 리포지토리에 접근하는 명령어를 추가 인증 없이 자동으로 처리할수 있습니다.
3) OAuth, sso 등등
2. github에 ssh로 두 개의 계정 연결하기
1) 두 개의 ssh 키 생성
(1) .ssh 폴더로 이동
터미널을 열어서 .ssh 폴더로 이동 (없으면 생성 - mkdir ~/.ssh)
cd ~/.ssh
(2) ssh 키 생성
각 github 계정에 사용할 ssh 키를 생성합니다. (각 계정마다 다른 키 사용)
형태는 아래와 같습니다.
# ssh 키 생성 형태
ssh-keygen -t <암호화방식> -b <key 크기> -C(대문자) 'example@gmail.com'
# -t : 암호화 방식 지정
# -b : byte size 지정 - 기본 3072, 최대 4096
# -C : github에 등록한 이메일
아래와 같이 입력합니다.
# 첫 번째 계정
ssh-keygen -t rsa -b 4096 -C 'example@gmail.com'
# 두 번째 계정
ssh-keygen -t rsa -b 4096 -C 'example2@gmail.com'
입력 후에는 파일명과 비밀번호 설정에 대한 질문이 나타납니다.
이때, 파일명을 지정해줍니다.
(3) ssh 계정용 파일명 지정
나의 경우는 파일명만 입력하고, 비밀번호는 따로 저장해놓음.
# 질문 1. key 저장할 파일명
Enter file in which to save the key (/Users/폴더/.ssh/id_rsa):
id_rsa_hs
id_rsa_ssol
# 질문 2. 비밀번호 (빈값인 경우 비밀번호 없음)
Enter passphrase (empty for no passphrase):
# 질문 3. 비밀번호 확인 (빈값인 경우 비밀번호 없음)
nter same passphrase again:
(4) 생성된 파일 확인
한 계정 당 2개의 파일이 생성됩니다.
ls
#결과 -> 4개 파일 생성됨
id_rsa_hs
id_rsa_hs.pub
id_rsa_ssol
id_rsa_ssol.pub
- 파일 설명
- id_rsa_hs: 비공개 ssh
- id_rsa_hs.pub: 공개 ssh
- id_rsa_ssol: 비공개 ssh
- id_rsa_ssol.pub: 공개 ssh
pub 확장자가 붙은 파일이 공개키 파일임. 이 파일은 github 계정 SSH 설정에 등록한다.
2) ssh키를 ssh-agent에 등록
(1) ssh-agent 란?
- 메모리 상에서 실행되는 백그라운드 프로세스로, ssh 연결이 필요할 때마다 사용자의 비밀키를 제공하여 ssh키를 이용한 인증을 처리
- 미리 ssh key를 추가하여, 이후 ssh 연결 작업에서 자동으로 key 사용 가능
- 개인키의 비밀번호를 암호화해서 기억해두고, 처음 한 번만 개인키 비밀번호를 입력하면 이후 자동인증되도록 해주는 프로그램
- socket을 생성해서 원격 서버와 통신해서 비밀번호 유출 우려 없음.
(2) ssh-agent 수동 실행 명령
ssh-agent가 백그라운드로 동작하도록 설정합니다.
# ssh-agent가 백그라운드로 동작하도록 설정
eval "$(ssh-agent -s)"
# 첫 번째 키를 ssh-agent에 추가
ssh-add ~/.ssh/id_rsa_hs
# 두 번째 키를 추가
ssh-add ~/.ssh/id_rsa_ssol
# ssh-agent에 로드된 ssh 키 목록 확인
ssh-add -l
# ssh-agent에서 키 삭제
ssh-add -d ~/.ssh/id_rsa_hs ...
(3) .ssh 폴더에 config 파일을 작성합니다.
# 깃헙 계정 - hs
# ----------------
Host github.com-hs
HostName github.com
IdentityFile ~/.ssh/id_rsa_hs
User 첫번째 계정 이름
# 깃헙 계정 - ssol
# ----------------
Host github.com-ssol
HostName github.com
IdentityFile ~/.ssh/id_rsa_ssol
User 두 번째 계정 이름
- Host : 연결할 때마다 사용할 것임
- User: 출력되는 계정 이름
(4) github에 ssh 설정
github 로그인하기.
[github > 우측 상단 프로필 이미지 > settings > SSH and GPG keys > New SSH key] 메뉴로 이동
- title은 임의로 적어넣는다
- key type은 기본적으로 Authentication key로 설정함.
- pub 파일의 내용을 복사해서 붙여넣어야함.
- 로 파일 내용을 클립보드에 복사할 수 있음.
# 파일 내용 클립보드 복사
pbcopy < 파일경로
(5) 연결 테스트
맥 터미널에서 접속 시도해보기
ssh -T git@github.com-ssol
# Hi ~~! You've successfully authenticated, but GitHub does not provide shell access.
# 일단 위와 같이 나오면 성공인듯.
(6) 내 로컬 프로젝트와 연결하기 - clone
intellij terminal에서 입력함.
git clone git@github.com-ssol:리포지토리/mybible-api.git
# 비밀번호 최초 입력 한번
git remote add origin git@github.com-ssol:리포지토리/mybible-api.git
git branch -M main
git push -u origin main
# 이 리포지토리에 대해서 로그에 찍히는 이메일,이름 변경
git config user.email "example@gmail.com"
git config user.name "유저명"
+
비밀번호 재입력 요청이 있다면 아래 설정 추가
2024.11.07 - [프로그래밍/GIT] - [github] git SSH 연결 비밀번호 재요청 이슈
'프로그래밍 > GIT' 카테고리의 다른 글
[github] git SSH 연결 비밀번호 재요청 이슈 (1) | 2024.11.07 |
---|---|
[git] 깃 커밋 당겨오기 - git pull (0) | 2024.07.23 |
[git] 여러 건의 커밋 충돌 git pull --rebase 하기 (vsCode) (2) | 2024.07.23 |
[git] 원격 repository에 local 커밋 업로드 - git push, git push origin main, 강제 push (0) | 2024.07.22 |
[git] github 레포지토리(repository) 연결/조회/해제 명령어 - remote add, remove (0) | 2024.07.22 |