← λͺ©λ‘μœΌλ‘œ
Multi-Account Git Setup Guide Using SSH

Git을 μ‚¬μš©ν•˜λ‹€ 보면 μ—¬λŸ¬ κ³„μ •μœΌλ‘œ μž‘μ—…ν•΄μ•Ό ν•  λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 개인 ν”„λ‘œμ νŠΈλŠ” 개인 GitHub κ³„μ •μœΌλ‘œ κ΄€λ¦¬ν•˜κ³ , νšŒμ‚¬ ν”„λ‘œμ νŠΈλŠ” νšŒμ‚¬ κ³„μ •μœΌλ‘œ 관리해야 ν•˜λŠ” 상황이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 이럴 λ•Œ μ—¬λŸ¬ 계정을 효율적으둜 관리할 수 μžˆλŠ” 방법이 ν•„μš”ν•©λ‹ˆλ‹€. SSHλ₯Ό μ‚¬μš©ν•˜λ©΄ λ³„λ„μ˜ 라이브러리 μ„€μΉ˜ 없이 둜컬 ν™˜κ²½μ—μ„œ μ—¬λŸ¬ 계정을 μ†μ‰½κ²Œ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€.

  1. SSH ν‚€ 생성

λ¨Όμ €, 각각의 계정에 λŒ€ν•΄ λ³„λ„μ˜ SSH ν‚€λ₯Ό 생성해야 ν•©λ‹ˆλ‹€. SSH ν‚€λŠ” μ•”ν˜Έν™”λœ ν˜•νƒœλ‘œ 자격 증λͺ…을 λŒ€μ²΄ν•˜λ©°, μ•ˆμ „ν•˜κ²Œ Git μ„œλ²„μ™€μ˜ 톡신을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/github_user1_ed25519
ssh-keygen -t ed25519 -C "your_other_email@example.com" -f ~/.ssh/github_user2_ed25519

μœ„ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ ~/.ssh/ 디렉토리에 각각 github_user1_ed25519와 github_user2_ed25519λΌλŠ” μ΄λ¦„μ˜ SSH ν‚€ 쌍(곡개 킀와 개인 ν‚€)이 μƒμ„±λ©λ‹ˆλ‹€.

  1. SSH μ„€μ • 파일 ꡬ성

SSH μ„€μ • 파일(~/.ssh/config)을 톡해 각 SSH ν‚€κ°€ μ–΄λ–€ GitHub 계정과 연결될지λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 이 μ„€μ • νŒŒμΌμ„ μ‚¬μš©ν•˜λ©΄ νŠΉμ • 호슀트λͺ…에 λŒ€ν•΄ μ§€μ •λœ SSH ν‚€λ₯Ό μ‚¬μš©ν•˜λ„λ‘ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Host github-user1
HostName github.com
User git
IdentityFile ~/.ssh/github_user1_ed25519

Host github-user2
HostName github.com
User git
IdentityFile ~/.ssh/github_user2_ed25519

μœ„μ™€ 같이 μ„€μ •ν•˜λ©΄ github-user1κ³Ό github-user2λΌλŠ” 호슀트λͺ…이 각각의 SSH 킀와 μ—°κ²°λ©λ‹ˆλ‹€.

  1. Git 리포지토리 클둠 및 μ‚¬μš©

이제 각각의 SSH 섀정을 μ΄μš©ν•΄ Git 리포지토리λ₯Ό ν΄λ‘ ν•˜κ±°λ‚˜, ν‘Έμ‹œ/ν’€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ£Όμ˜ν•  점은, 클둠할 λ•Œ URL ν˜•μ‹μ—μ„œ git@ 뢀뢄을 μƒλž΅ν•˜κ³  github-user1: λ˜λŠ” github-user2: ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

git clone github-user1:user1/test.git
github-user2 계정을 μ‚¬μš©ν•  κ²½μš°μ—λŠ” λ‹€μŒκ³Ό 같이 μž…λ ₯ν•©λ‹ˆλ‹€.
git clone github-user2:user2/test.git

이 λ°©μ‹μœΌλ‘œ μ—¬λŸ¬ 계정을 μ‚¬μš©ν•  수 있으며, Git이 각 계정에 λ§žλŠ” SSH ν‚€λ₯Ό μžλ™μœΌλ‘œ μ„ νƒν•˜κ²Œ λ©λ‹ˆλ‹€.

  1. SSH ν‚€ 파일 κΆŒν•œ μ„€μ •

λ§ˆμ§€λ§‰μœΌλ‘œ, SSH ν‚€ 파일의 κΆŒν•œμ„ 적절히 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. Git은 개인 ν‚€ 파일의 κΆŒν•œμ΄ μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λ˜μ§€ μ•Šμ€ 경우 λ³΄μ•ˆμ„ μœ„ν•΄ κ²½κ³  λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•˜λ©°, 연결을 κ±°λΆ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ, 개인 ν‚€ 파일의 κΆŒν•œμ„ 600으둜 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

chmod 600 ~/.ssh/github_user1_ed25519
chmod 600 ~/.ssh/github_user2_ed25519

이제 λͺ¨λ“  섀정이 μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 둜컬 ν™˜κ²½μ—μ„œ μ—¬λŸ¬ Git 계정을 관리할 λ•Œ, 각 κ³„μ •λ§ˆλ‹€ λ‹€λ₯Έ SSH ν‚€λ₯Ό μ‚¬μš©ν•˜μ—¬ μ•ˆμ „ν•˜κ²Œ μž‘μ—…μ„ μ§„ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€ ~