Frontend Fundamentals
frontend-fundamentals.com
내 GitHub 계정의 ssh 와 함께 회사 계정 GitHub, 클라이언트(고객) 계정 GitHub, 클라언트 서버 ssh 를 한 터미널에서 사용하려고 하면 충돌이 일어나거나 잘 안되는 경우가 생길 수 있습니다. 인터넷에 검색을 해봐도 저마다 설명이 조금씩 다르고 생각보다 설정하기가 까다로울 수 있습니다.
나의 개발용 컴퓨터에 클라이언트(고객)용 계정과 클라이언트(고객)용 서버에 접속하는 ssh를 함께 사용하는 경우로 로컬 개발 환경은 맥 터미널이라고 가정 하겠습니다. 윈도우즈도 크게 다르지 않을 것으로 생각됩니다.
ssh 키 생성
$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C "yourmail@example.com"
키 생성할 때 주의 점은 ssh 키의 파일 이름을 입력할 때 구분하기 쉬운 이름으로 정해 주는 것입니다.
예) id_ed25519_your-client-name
공개키 클립보드로 복사하기
$ cat id_ed25519_your-client-name.pub | pbcopy
사용할 GitHub 계정에 로그인 하여 클립보드에 복사한 ssh 공개 키 붙여 넣기
GitHub.com → Settings → SSH and GPG key → [New SSH key]
ssh config 파일 편집
$ cd ~/.ssh
$ vi config
# Your Client GitHub
Host my-client-gitgub
HostName github.com
AddKeysToAgent yes
UseKeychain yes
User git
IdentityFile ~/.ssh/id_ed25519_github_your-client-name
IdentitiesOnly yes
# Your Client Remote Server
Host my-client-server
HostName 123.123.123.123
AddKeysToAgent yes
UseKeychain yes
User git
IdentityFile ~/.ssh/id_ed25519_your-client-name
IdentitiesOnly yes
#
은 주석으로 구분하기 쉽게 설명을 적어줍니다.
Host
다음에 오는 내용은 호스트의 별칭으로 구분하고 사용하기 쉬운 별칭으로 정합니다. 사실 이부분이 이번 설명의 핵심입니다.
HostName
GitHub 은 github.com
, 원격 서버는 IP 주소를 적어 줍니다. 원격 서버의 경우 도메인이 설정 되어 있다면 도메인을 적어도 됩니다.
IdentityFile
에 1번 과정에서 생성할 때 만들었던 파일 이름을 적어 줍니다. 여기 적는 것은 공개키가 아니므로 .pub
는 빼고 입력해야 합니다.
[주의!중요!] GitHub 저장소 만들고 remote origin 등록
처음에 GibHub에 저장소를 만들고 remote origin을 등록할 때
git remote add origin git@github.com:[github-id]/[repository-name].git
이런 것을 터미널에 복사하게 됩니다.
터미널에 붙여 넣고 엔터키를 누르기 전에 다음과 같이 수정합니다.
git remote add origin git@[my-client-github]:[github-id]/[repository-name].git
@ 다음의 github.com
을 4번 과정에서 config 파일에 작성한 Host의 별칭으로 바꾸어 주는 것이 핵심입니다.
예)
$ git remote add origin git@my-client-github:github-id/my-project.git
git clone
할 때나 git remote set-url
할 때도 뒷 부분에 똑같이 사용할 Host를 입력해 주면 됩니다.
코드 푸시
$ git push -u origin main
하면 바로 코드가 업로드 되는 것을 확인하실 수 있습니다.
원격 서버 ssh 접속
원격 서버에 접속할 때도 ssh가 모두 설정되어 있다면
$ ssh server-id@my-client-server
와 같이 4번에서 작성한 Host 별칭으로 접속하면 됩니다.
[추가 참고 자료]
# List all the SSH keys attached to the ssh-agent.
$ ssh-add -l
# This will remove all previously added identities from the SSH agent.
$ ssh-add -D
# Add ssh keys
$ ssh-add --apple-use-keychain ~/.ssh/[ssh-key-file-name]
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 4월 2일 오후 5:54
1. 커리어를 선택하는 기준은 다양하다. 일단 내가 가진 가치관이 가장 큰 영향을 준다. 남들의 시선과 판단도 무시할 수 없다. 이직 트렌드와 경향도 살펴봐야 한다.
... 더 보기