Github 계정 전환!(키 만들기~계정 전환)

8541 단어 Git

입문


바로 질문할게요. 많은 분들이 회사에서 쓰는 Github 계정과 개인 계정을 가지고 계신 것 같아요.
계정을 어떻게 바꿉니까?
이번에는 열쇠의 제작·등록에서 가능한 한 업무용과 개인용 계좌의 전환 방법을 진지하게 전달하고 싶습니다.

문서 구성


ssh를 위한 공개 키와 개인 키 만들기


Github와 ssh 통신에 필요한 자격 증명을 만듭니다.
개인 키는 절대 사람들과 공유할 수 없다.
이것은 Github 저장소와 통신하고 추출 및 푸시하는 데 필요한 조건입니다.

공개 키와 개인 키를github에 등록합니다


키 이미지
은행 계좌를 예로 들다
공개 키는 계좌번호다.입금을 위해 공개합니다.
개인 키는 ATM기를 조작할 때 사용하는 비밀번호다.나 혼자밖에 몰라.

키 및 Github 계정 바인딩


계정을 전환하여gitclone을 진행합니다


ssh-agent에 키 등록(암호 입력 생략)


ssh를 위한 공개 키와 개인 키 만들기


우선, ssh를 관리하는 디렉터리로 이동합니다.
cd ~/.ssh
회사용
지금 공개 키와 개인 키를 만듭니다.ssh-genkey 명령을 사용합니다.
ssh-keygen [オプション] -t 鍵タイプ [-N 新しいパスフレーズ] [-C コメント] [-f 鍵ファイル]
ssh-keygen -p [-P 古いパスフレーズ] [-N 新しいパスフレーズ] [-f 鍵ファイル]
ssh-keygen -i [-f 鍵ファイル]
ssh-keygen -l [-f 鍵ファイル]
다음 작업을 수행하면 암호가 표시됩니다.
이 키를 사용하여 ssh를 실행할 때 git push 또는 이 비밀번호를 사용합니다.
또한 -f 에서 지정한 이름으로 두 개의 파일을 만들었습니다.hogehoge.pub 이런 느낌.
따라서 -C회사, 개인용 메일 주소-f 사용자 이름 등은 관리하기 쉽다.
ssh-keygen -t rsa -b 4096 -C [email protected] -f file_name
참고로 이렇게 하면 열쇠도 만들 수 있어요.
ssh-keygen -t rsa
그렇다면id_rsaid_rsa.pub 이 열쇠면 되지만 나중에 어떤 열쇠인지 잊어버리고 비밀번호를 설정하지 않아 안전하지 않으니 옵션을 가지고 만드는 것을 권장합니다.
상세한 상황은 이 문장을 참고하세요.
너희 SSH Keys의 방법이 틀렸어.

공개 키와 개인 키를github에 등록합니다


Github 계정이 있는 경우 여기서 키를 등록할 수 있습니다.


Title에 이름을 지어서 나중에 봐도 SSH 키를 등록한 이유가 무엇인지 알 수 있습니다.
키에 공개 키를 붙여넣습니다.
내가 먼저 키를 복사할게.pbcopy 클립보드에 복사할 수 있습니다.
다시 말하면 선택⌘ c과 같다.
그런 다음 ssh-keygen 만든 파일 이름을 선택합니다.
회사, 개인 열쇠를 Github에 혼동하여 등록하지 않도록 주의하세요.
pbcopy < ~/.ssh/file_name.pub

키 및 Github 계정 바인딩


에서 만든 키를 Github 계정에 연결합니다.
아까와 같이 키를 관리하는 디렉터리로 이동합니다.
cd ~/.ssh
config의 서류를 여기에 인증 정보를 쓴다.
vim을 모르는 사람은 VS 코드나 사용하기 쉬운 텍스트 편집기를 사용하여 편집하십시오.
vim config
#------------------------------------
# 仕事
#------------------------------------
Host github.com
  HostName github.com
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/file_name
  TCPKeepAlive yes
  IdentitiesOnly yes
#------------------------------------
# プライベート
#------------------------------------
Host github-private
  HostName github.com
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/file_name
  TCPKeepAlive yes
  IdentitiesOnly yes

나는 이렇게 관리한다.Host에서 지정한 문자열을 git clone에 포함하고 IdentityFile에서 지정한 키를 사용할 수 있습니다.#仕事계정clone을 사용하고 싶을 때
              __________
git clone [email protected]:username/repository.git
#プライベート 계정 clone 을 쓰려고 했을 때 그랬어요!
              _______________
git clone git@github-private:username/repository.git
ssh통신이 가능한지 테스트하는 것은 미묘하기 때문에 git clone 명령을 사용하세요.ssh 중 연결하고 싶은 계정-T을 지정합니다.Host
ssh -T github.com
다음 메시지에 응답하면 됩니다.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
#仕事
ssh -T github-private
다음 메시지에 응답하면 됩니다.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

계정을 전환하여gitclone을 진행합니다


로 만든 인증으로 계좌를 전환하고 싶습니다.
저의 경우 기본적으로 작업용 Github 계정이기 때문에 보통 작업용 계정으로 복제합니다.
git clone [email protected]:hoge/hoge.git
이대로 가면 개인 계정이 초대된 저장소는 복제할 수 없고commit도 작업 계정으로 초대됩니다.
따라서 로 만든 인증 정보를 사용하여 복제한다.
git clone git@github-private:hoge/hoge.git
비밀번호만 입력하면 복제될 것 같습니다.
하지만 그뿐 계정은 바뀌지 않았다.
저장소의 #プライベート 을 다시 작성해야 합니다.
먼저 저장소의 인증 정보를 확인합니다.
git config --local -l
만약 이 결과.git/configuser.name가 개인용이 아니거나 비어 있다면 고쳐야 한다.
git config --local user.name hoge
git config --local user.email [email protected]
이제 전용 계정에서 저장소를 사용할 수 있습니다.

ssh-agent에 키 등록(암호 입력 생략)


에서 만든 키를 사용하면 계정을 전환할 수 있지만 매번 비밀번호를 입력하는 것이 번거롭습니다.그곳에 등장한 것은 user.email.

ssh-agent


간단히 말하면 공개 키 인증 방식으로 인증된 SSH 서버에 연결할 때 개인 키로 설정된 암호 구문을 입력하는 대신 사용하는 응용 프로그램입니다.(개인 키 및 암호 구문은 메모리에 캐시됨)
Github 공식 도움말 페이지에서 만든 ssh 키를 ssh-agent에 등록하는 방법도 소개했다.

단계


백그라운드에서 ssh-agent 시작
$ eval "$(ssh-agent -s)"
> Agent pid 59566
편집에서 편집ssh-agent
Host github.com
  HostName github.com
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/file_name
  TCPKeepAlive yes
  IdentitiesOnly yes
# --- 下記2行を追加 ------
  AddKeysToAgent yes
  UseKeychain yes
ssh-agent에 SSH 개인 키를 추가하고 암호 구문을 키 체인에 저장~/.ssh/config의 부분은 에서 만든 키 파일 이름입니다.
ssh-add -K ~/.ssh/hogehoge
이렇게 하면 hogehoge에 추가됩니다!!
원격 서버와의 통신에는 더 이상 비밀번호가 필요하지 않습니다.

마지막


이번에는 열쇠 제작부터 계좌 전환까지 절차를 소개했다.
참고로 bash 스크립트를 사용하면 명령 하나로 작업을 완성할 수 있습니다.
그 각본은 개인용이라 통용되지 않으니 공개할 수 없으니 여러분도 한번 써 보세요.
업무 효율이 완전히 다르다!!

좋은 웹페이지 즐겨찾기