Community

GitHub 복수 계정, 복수 ssh 사용 간단 꿀팁

내 GitHub 계정의 ssh 와 함께 회사 계정 GitHub, 클라이언트(고객) 계정 GitHub, 클라언트 서버 ssh 를 한 터미널에서 사용하려고 하면 충돌이 일어나거나 잘 안되는 경우가 생길 수 있습니다. 인터넷에 검색을 해봐도 저마다 설명이 조금씩 다르고 생각보다 설정하기가 까다로울 수 있습니다. 나의 개발용 컴퓨터에 클라이언트(고객)용 계정과 클라이언트(고객)용 서버에 접속하는 ssh를 함께 사용하는 경우로 로컬 개발 환경은 맥 터미널이라고 가정 하겠습니다. 윈도우즈도 크게 다르지 않을 것으로 생각됩니다. 1. ssh 키 생성 $ cd ~/.ssh $ ssh-keygen -t ed25519 -C "yourmail@example.com" * 키 생성할 때 주의 점은 ssh 키의 파일 이름을 입력할 때 구분하기 쉬운 이름으로 정해 주는 것입니다. * 예) id_ed25519_your-client-name 2. 공개키 클립보드로 복사하기 $ cat id_ed25519_your-client-name.pub | pbcopy 3. 사용할 GitHub 계정에 로그인 하여 클립보드에 복사한 ssh 공개 키 붙여 넣기 * GitHub.com → Settings → SSH and GPG key → [New SSH key] 4. 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 는 빼고 입력해야 합니다. 5. [주의!중요!] 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를 입력해 주면 됩니다. 6. 코드 푸시 $ git push -u origin main 하면 바로 코드가 업로드 되는 것을 확인하실 수 있습니다. 7. 원격 서버 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]

알림

알림이 없습니다