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]

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 2일 오후 5:54

댓글 0

    함께 읽은 게시물

    토스에서 만든 FE 코드 지침서

    h

    ... 더 보기

    Frontend Fundamentals

    frontend-fundamentals.com

    Frontend Fundamentals

     • 

    저장 43 • 조회 3,201


    이력서에 쓰는 경험

    

    ... 더 보기

    《Simple Truth》

    ... 더 보기

    LGTM, ACK, WFH? 개발자가 알아야 할 인터넷 영어 표현 12개

    ... 더 보기

    조회 97


    < 이직을 고민하는 당신이 던져야 할 단 3가지 질문 >

    1. 커리어를 선택하는 기준은 다양하다. 일단 내가 가진 가치관이 가장 큰 영향을 준다. 남들의 시선과 판단도 무시할 수 없다. 이직 트렌드와 경향도 살펴봐야 한다.

    ... 더 보기

     • 

    댓글 1 • 저장 4 • 조회 499


    이직하고 싶을 때 보세요

    ... 더 보기

    - YouTube

    youtu.be

     - YouTube