같은 컴퓨터에 여러 개의 GitHub 계정이 있습니까?
실제의 「작업」리포트와 GitHub의 리포트 양쪽을 컴퓨터로 작업하려고 합니다.
워크 어카운트가 먼저 설정되었고 모든 것이 완벽하게 작동합니다.
다만, 다른 어카운트/이메일로 설정되어 있는 리포트에는 푸시 할 수 없는 것 같습니다.
업무용 키를 계정에 복사하려고 했지만, 한 계정에만 키를 첨부할 수 있기 때문에 오류가 발생합니다.
각각의 GitHub credential을 사용하여 양쪽 계정을 푸시/풀하려면 어떻게 해야 합니까?
SSH 셋업을 복수의 SSH 키쌍으로 설정하기만 하면 됩니다.
이 링크는 쉽게 찾을 수 있습니다(Eric 감사합니다.
SSH 키 생성 중(Win/msysgit):
첫 번째 링크부터의 관련 절차:
SSH 키를 생성합니다.
ssh-keygen -t ed25519 -C "john@doe.example.com"
에 따라 이름을 ).
id_ed25519_example_company
.를 SSH GitHub에서 합니다.
~/.ssh/id_ed25519_doe_company.pub
스쉬하다ssh-add ~/.ssh/id_ed25519_doe_company
작성하다
config
~/.ssh
다음과 같은 내용으로 구성되어 있습니다.Host github-doe-company HostName github.com User git IdentityFile ~/.ssh/id_ed25519_doe_company
리모트 추가:
git remote add origin git@github-doe-company:username/repo.git
또는 다음을 사용하여 변경:
git remote set-url origin git@github-doe-company:username/repo.git
또한 여러 개의 리포지토리를 사용하는 경우 개별 리포지토리의 사용자 설정을 그에 따라 재정의해야 합니다.
사용자 이름, 이메일 및 GitHub 토큰 설정– 개별 저장소 설정 우선 https://help.github.com/articles/setting-your-commit-email-address-in-git/
주의: 다른 저장소에서 다른 이메일을 사용해야 하는 경우도 있습니다.git 2.13 에서는, 다음의 URL 에 있는 글로벌 설정 파일을 편집하는 것으로, 디렉토리 베이스로 이메일을 설정할 수 있습니다.~/.gitconfig
하다
[user]
name = Default Name
email = defaultemail@example.com
[includeIf "gitdir:~/work/"]
path = ~/work/.gitconfig
으로 작업 의 설정입니다.~/work/.gitconfig
음음음같 뭇매하다
[user]
name = Pavan Kataria
email = pavan.kataria@example.com
HTTPS 사용:
원격 URL을 https로 변경:
git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git
이제 가도 좋아요.
git push
커밋이 USERNAME에 의해 실행된 것처럼 보이도록 하기 위해 이 프로젝트의 user.name 및 user.email도 설정할 수 있습니다.
git config user.name USERNAME
git config user.email USERNAME@example.com
몸매 가꾸기
git repo를 별도의 gitub/bitbucket/어떤 계정으로 관리하려면 새로운 SSH 키를 생성하기만 하면 됩니다.
두아이덴티티를 를 들어 시스템이 인 ID로 해 봅시다.사용하시는 시스템이 표준으로 설정되어 있다고 가정해 보겠습니다.id_rsa
★★★★★★★★★★★★★★★★★」id_rsa.pub
당장 당신의 금금신당 의의의의의의의tree ~/.ssh
모양입니다.
$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── id_rsa
└── id_rsa.pub
먼저 키 쌍의 이름을 지정하십시오.설명적인 이름을 추가하면 어떤 키가 어떤 사용자/리모트에 사용되었는지 기억할 수 있습니다.
# change to your ~/.ssh directory
$ cd ~/.ssh
# rename the private key
$ mv id_rsa github-mainuser
# rename the public key
$ mv id_rsa.pub github-mainuser.pub
다음으로 새로운 키쌍을 생성합니다.여기서 새로운 키의 이름을 붙입니다.github-otheruser
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-otheruser
이제 ㅇㅇ을 , ㅇㅇㅇㅇㅇ.tree ~/.ssh
수 있다
$ tree ~/.ssh
/Users/you/.ssh
├── known_hosts
├── github-mainuser
├── github-mainuser.pub
├── github-otheruser
└── github-otheruser.pub
다음, '하다, 하다, 하다'를 설정해야 합니다.~/.ssh/config
주요 구성을 정의하는 파일입니다.적절한 소유자 읽기/쓰기 전용 권한으로 작성합니다.
$ (umask 077; touch ~/.ssh/config)
마음에 드는 에디터로 열고, 다음의 내용을 추가해 주세요.
Host github.com
User git
IdentityFile ~/.ssh/github-mainuser
Host github.com-otheruser
HostName github.com
User git
IdentityFile ~/.ssh/github-otheruser
기트허브 아이디「default.com 는, 「」, 「Default」를 해 주세요.Host
에서는 을 합니다.mainuser
키. 다른 계정보다 한 계정을 우선시하지 않으려면 업데이트된 ssh 구성을 사용하도록 시스템상의 기존 저장소를 업데이트하는 방법을 보여 줍니다.
github에 새 SSH 키 추가
github.com/settings/keys으로 이동하여 새 공용 키를 추가하십시오.
공개 키 내용은 다음과 같이 얻을 수 있습니다.github에 복사/붙여넣기
$ cat ~/.ssh/github-otheruser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBVvWNQ2nO5...
이것으로 새로운 사용자 ID가 모두 셋업 되었습니다.아래에 그 사용법을 나타냅니다.
작업 완료: 레포 복제
그럼 이게 어떻게 git과 github과 함께 작동할까요?계란 없이는 닭을 가질 수 없기 때문에 기존 레포 복제를 검토해 보겠습니다.이 상황은 직장에 새로운 github 계정이 있고 회사 프로젝트에 추가된 경우에 적용될 수 있습니다.
'우리'라고 합시다.github.com/someorg/somerepo
.복제는 매우 간단합니다.
$ git clone github.com-otheruser:someorg/somerepo.git
굵은 글씨로 표시된 부분은Host
your の your your your name name name 。~/.ssh/config
을 대응하는 git에 합니다.IdentityFile
를 사용하여 합니다.ITHUB는 ITHUB에 대응하고 있습니다.
작업 완료: 새로운 보고서 작성
닭고기와 계란 없이는 살 수 없기 때문에 당신의 2차 계정에 새로운 보고서를 발행하는 것을 검토해 보겠습니다.이 상황은 세컨더리 github 계정을 사용하여 새로운 콘텐츠를 작성하는 사용자에게 적용됩니다.
당신이 이미 현지에서 약간의 작업을 마쳤으며 이제 github을 추진할 준비가 되었다고 가정해 봅시다.괜찮으시다면 저를 따라오셔도 됩니다
$ cd ~
$ mkdir somerepo
$ cd somerepo
$ git init
이제 ID를 사용하도록 이 보고서를 구성합니다.
$ git config user.name "Mister Manager"
$ git config user.email "someuser@some.org"
이제 첫 번째 커밋을 합니다.
$ echo "hello world" > readme
$ git add .
$ git commit -m "first commit"
새 ID가 git 로그를 사용하여 사용되었는지 확인하려면 커밋을 확인하십시오.
$ git log --pretty="%H %an <%ae>"
f397a7cfbf55d44ffdf87aa24974f0a5001e1921 Mister Manager <someuser@some.org>
좋아, 이제 GITHUB로 가자!Github은 아직 새로운 레포에 대해 모르기 때문에 먼저 github.com/new에 접속하여 새로운 레포(이름 지어주세요)를 작성해주세요.
ID / credential 대ithithithith github oooooo ooooo ooo 。 사용자 이 "github"이라고합니다.someuser
$ git remote add origin github.com-otheruser:someuser/somerepo.git
굵은 글씨로 표시된 부분은 절대적으로 중요하기 때문에Host
되어 있습니다.~/.ssh/config
마지막으로 repo를 누릅니다.
$ git push origin master
새 SSH 구성을 사용하도록 기존 repo 업데이트
이미 리포(repo)가 몇 개 복제되어 있는데 새로운 SSH 구성을 사용하려고 합니다.위의 예에서는 이전 저장소를 할당하여 기존 저장소를 유지했습니다.id_rsa
/id_rsa.pub
을 ""로 설정합니다.Host github.com
SSH를 사용하다문제는 없습니다만, 적어도 5개의 GITHUB 구성이 있기 때문에, 그 중 하나를 「디폴트」구성이라고 생각하고 싶지 않습니다.이치노
이거 먹기 전에
Host github.com
User git
IdentityFile ~/.ssh/github-mainuser
Host github.com-otheruser
HostName github.com
User git
IdentityFile ~/.ssh/github-otheruser
이 내용을 업데이트하겠습니다(굵은 글씨로 변경).
Host github.com-mainuser
HostName github.com
User git
IdentityFile ~/.ssh/github-mainuser
Host github.com-otheruser
HostName github.com
User git
IdentityFile ~/.ssh/github-otheruser
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★github.com
는 이 fileremote에서 하지 않습니다.츠미야 간단한 문제예요.
하여 새로운 하려면 SSH repo를 합니다.set-url
-
$ cd existingrepo
$ git remote set-url origin github.com-mainuser:someuser/existingrepo.git
로로그그그그다다, 이제 은 할 수 있습니다.push
/pull
SSH 키 파일 사용 권한
공용 키가 제대로 작동하지 않는 문제가 발생한 경우 SSH는 다음 버전에서 허용된 파일 권한에 대해 매우 엄격합니다.~/.ssh
및
는 「」, 「」로 할 필요가 .700
모든 파일은 다음과 같아야 합니다.600
를 할 수 .- 、 、 、 、 、 、 쓰쓰쓰쓰쓰쓰쓰쓰 。다른 그룹/사용자는 읽기/쓰기를 할 수 없습니다.
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/config
$ chmod 600 ~/.ssh/github-mainuser
$ chmod 600 ~/.ssh/github-mainuser.pub
$ chmod 600 ~/.ssh/github-otheruser
$ chmod 600 ~/.ssh/github-otheruser.pub
SSH 키 관리 방법
접속하는 모든 호스트에 대해 SSH 키를 개별적으로 관리하므로 한 개의 키가 손상되어도 해당 키를 사용한 다른 모든 위치에서 키를 업데이트할 필요가 없습니다.Adobe로부터 1억5000만 명의 사용자 정보가 도난당했다는 통보를 받았을 때(이제 신용카드를 해지하고 그에 의존하는 모든 서비스를 업데이트해야 함)와 같습니다.정말 귀찮은 일입니다.
은 이렇습니다~/.ssh
츠키다요..pem
각 사용자의 키를 누릅니다. 용 i i i i를 쓴다..pem
한 키당 하나의 파일만 있으면 됩니다.
$ tree ~/.ssh
/Users/myuser/.ssh
├── another.site
│ ├── myuser.pem
├── config
├── github.com
│ ├── myuser.pem
│ ├── someusername.pem
├── known_hosts
├── somedomain.com
│ ├── someuser.pem
└── someotherdomain.org
└── root.pem
여기가 쓴 ./.ssh/config
file – github ub github 、 github 、 github 、 github 、 github 。그러나 이 답변은 임의의 수의 서비스/클라이언트에서 ssh ID를 관리하기 위한 지식을 갖추는 것을 목적으로 합니다.
Host another.site
User muyuser
IdentityFile ~/.ssh/another.site/muyuser.pem
Host github.com-myuser
HostName github.com
User git
IdentityFile ~/.ssh/github.com/myuser.pem
Host github.com-someuser
HostName github.com
User git
IdentityFile ~/.ssh/github.com/someusername.pem
Host somedomain.com
HostName 162.10.20.30
User someuser
IdentityFile ~/.ssh/somedomain.com/someuser.pem
Host someotherdomain.org
User someuser
IdentityFile ~/.ssh/someotherdomain.org/root.pem
PEM 키에서 SSH 공용 키 가져오기
위에서 각 키에 대해 파일이 1개밖에 없다는 것을 알게 되었습니다.공개키를 제공해야 할 경우 필요에 따라 생성하기만 하면 됩니다.
따라서 github에서 ssh 공용 키를 요구하면 이 명령을 실행하여 공개 키를 stdout으로 출력합니다.필요한 경우 복사/붙여넣기
$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAA...
이것은 리모트 머신에 키를 추가할 때와 같은 프로세스입니다.ssh-rsa AAAA...
의 리모콘에 됩니다.~/.ssh/authorized_keys
id_rsa
/id_rsa.pub
으로의
그래서 중요한 파일을 길들이고 파일 시스템의 번거로움을 줄이고 싶은 건가요?키쌍을 단일 PEM으로 쉽게 변환
$ cd ~/.ssh
$ openssl rsa -in id_rsa -outform pem > id_rsa.pem
위의 '아까운 이름'을 '아까운명하다.id_rsa -> github-mainuser
★★★★★★★★★★★★★★★★★」id_rsa.pub -> github-mainuser.pub
- 그서 –
$ cd ~/.ssh
$ openssl rsa -in github-mainuser -outform pem > github-mainuser.pem
이 변환이 올바른지 확인하기 위해 생성된 공용 키가 이전 공용 키와 일치하는지 확인해야 합니다.
# display the public key
$ cat github-mainuser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==
# generate public key from your new PEM
$ ssh-keygen -y -f someuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA ... R++Nu+wDj7tCQ==
이왕이면 이왕이면 이왕이면 이왕이면github-mainuser.pem
파일을 안전하게 할 수 .github-mainuser
★★★★★★★★★★★★★★★★★」github-mainuser.pub
– 됩니다^ PEM 파일입니다. 필요할 때마다 공용 키를 생성하기만 하면 됩니다 ^_^
PEM 키를 처음부터 작성하다
개인 키/공개 키 쌍을 만든 후 단일 PEM 키로 변환할 필요가 없습니다.PEM 키는 직접 작성할 수 있습니다.
이번에는 '만들다'를 볼까요newuser.pem
$ openssl genrsa -out ~/.ssh/newuser.pem 4096
SSH 공용 키를 가져오는 방법은 동일합니다.
$ ssh-keygen -y -f ~/.ssh/newuser.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACA ... FUNZvoKPRQ==
~/.http/config에서 github.com에 다른 호스트 에일리어스를 생성하고 각 호스트에 고유한 ssh 키를 지정하면 여러 github 계정을 혼동 없이 쉽게 사용할 수 있습니다.이는 github.com이 항상 git인 사용자별이 아니라 접속에 사용한SSH 키로 구분하기 때문입니다.독자적인 호스트 에일리어스를 사용해 리모트 송신원을 설정하기만 하면 됩니다」
위의 요약은 아래의 블로그 게시물에 대한 코멘트를 바탕으로 작성되었습니다.
나는 이 설명이 가장 명확하다고 생각했다.적어도 2012년 4월부터는 효과가 있습니다.
http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/
misaba에 링크되어 있는 http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts/의 상세정보가 매우 마음에 듭니다.
이 페이지부터:
$ touch ~/.ssh/config
그런 다음 다음과 같이 파일을 편집합니다(계정당 1개의 항목).
#Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
Host github-COMPANY
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_COMPANY
제 경우 Git-Lab에 업무 계정이 있고 GitHub에 개인 계정이 있습니다.내 Git-Lab 계정은 내 노트북의 모든 디렉토리에서 접근하도록 글로벌하게 구성되었습니다.
git config --global user.name WORK_USERNAME
git config --global user.email WORK_USERNAME@example.com
하지 않고 에는 SSL을 사용하여 수 .git init
git config user.name PERSONAL_USERNAME
git config user.email PERSONAL_USERNAME@example.com
★★★★★--global
이치노왜냐하면 개인 git에 접속하는 것은 어디에서나 할 수 없기 때문에, 그 폴더내의 git credential은 개인 어카운트에 접속되어 있고, 그 밖에 있는 것은 모두 워크 어카운트에 접속되어 있기 때문입니다.
다음 이렇게 할 수 .git clone your_repo_link.git
그러면 새 창이 뜨고 github 계정으로 로그인하라는 메시지가 나타납니다.
하려면 , 「」를 시험해 주세요.git config --list
작성한 폴더내에, 업무명과 개인 유저명, 및 디렉토리가 있는 이메일이 표시됩니다.
에서 " " " 를 실행하면 " " " 가 실행됩니다.git config --list
회사 사용자 이름과 이메일만 볼 수 있습니다.
이상입니다. SSL을 설정하지 않아도 도움이 되었으면 합니다.
- ~/.ssh로 이동합니다.
- config라는 이름의 파일을 만듭니다(확장자 없음).
구성 파일을 열고 아래 코드를 추가합니다.(계정에 따라 변경)
어카운트 1
# account_1 Host gitlab.com-account_1 HostName gitlab.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_account_1
어카운트 2
# Account2 Host gitlab.com-Account2 HostName gitlab.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_Account2
어카운트 3
# Account_3 Host github.com-Account3 HostName github.com User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa_Account_3
다음과 같이 원격 URL 추가
어카운트 1
git remote add origin git@gitlab.com-account_1:group_name/repo_name.git
어카운트 2
git remote add origin git@gitlab.com-Account2:group_name/repo_name.git
어카운트 3
git remote add origin github.com-Account3:github_username/repo_name.git
아이덴티파일명은 ssh 키 생성 시 작성한 것과 동일합니다.
이 답은 초보자를 위한 것입니다(none-git grus.저는 최근에 이 문제를 겪었고 아마도 저 혼자였을 것입니다만, 대부분의 답변은 git에 대한 사전 이해를 필요로 하는 것 같습니다.이 스레드를 포함한 여러 스택오버플로우 답변을 읽은 후, GitHub 계정을 쉽게 전환하기 위해 필요한 절차를 다음에 제시합니다(예를 들어 github.com/personal과 gitHub.com/work) 두 개의 GitHub 계정을 가정합니다).
- 기존 ssh 키가 있는지 확인합니다.터미널을 열고 이 명령을 실행하여 기존 ssh 키를 표시/표시합니다.
ls -al ~/.ssh
가 " " " 인.pub
키이므로 ssh 2에 대해 의 ssh 키가 있어야 합니다.personal
★★★★★★★★★★★★★★★★★」work
할 때 건너뜁니다1개만 있거나 1개도 없는 경우 다른 wise를 생성할 때입니다.
- ssh 키 생성: github(개인 또는 워크 액세스)에 로그인하여 Settings로 이동하여 관련 이메일을 복사합니다.
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ssh-keygen -t rsa -C "the copied email"
뭇매를 맞다
RSA를 사용하다
"/..."/"/"id_":
id_ssh는 곧 생성되는 SSH 키의 기본 이름이기 때문에 경로를 복사하고 기본값 이름을 변경합니다./.../.ssh/id_rsa_work
업무용 계정을 생성하는 경우.패스워드를 입력하거나 무시하기 위해 입력하면 키의 랜덤 아트이미지: 및 이미지 같은 것을 읽을 수 있습니다.다 했어요.
기트럽을 사용하다덮어쓰기를 방지하려면 올바른 전자 메일 주소와 다른 ssh 키 이름(예: id_rsa_personal)을 사용하십시오.
에서 "2" "ssh" 를 실행하면 됩니다.ls -al ~/.ssh
- ssh 키를 gitHub 계정에 관련짓습니다.다음 단계는 ssh 키 중 하나를 복사하고 이를 실행하지만 자신의 ssh 키 이름을 바꿉니다.
pbcopy < ~/.ssh/id_rsa_work.pub
, 치환하다id_rsa_work.pub
당신의 것으로요.
.[가 "ssh " " " " " " " " " github " " " " " " " " " " " . " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 입니다 [복사된 ssh 키가 다음과 같은 경우 작업 계정에 로그인했는지 확인하십시오.id_rsa_work
] 으로합니다.
설정 - SSH 및 GPG 키를 누르고 새 SSH 키 버튼을 클릭합니다(새 GPG 키 btw:D가 아님).
이 키의 제목을 지정하고 키를 붙여넣고 SSH 키 추가를 클릭합니다.이것으로 SSH 키를 정상적으로 추가하였거나 계속 정상적으로 존재하였음을 알게 되었습니다.또는 [New SSH key :D]가 아닌 [New GPG key]를 선택하였기 때문에 오류가 발생하였습니다. - ssh 키를 gitHub 계정에 연결합니다.두 번째 계정에 대해 위의 단계를 반복합니다.
글로벌 git 설정 편집: 마지막 단계는 글로벌 설정 파일이 모든 github 계정을 인식하는지 확인하는 것입니다.
실행합니다.git config --global --edit
파일을 vim을 .i
모드로 같이 키를 다음 esc 키를 .:wq
모드를 " " " " 를 선택합니다.[inside this square brackets give a name to the followed acc.] name = github_username email = github_emailaddress [any other name] name = github_username email = github_email [credential] helper = osxkeychain useHttpPath = true
완료! 이제 Repo를 누르거나 꺼내려고 할 때 어떤 GitHub 계정을 이 repo에 링크해야 하는지 물어보고 한 번만 물어봅니다.로컬 설정에서는 글로벌Configuration이 아닌 이 링크가 기억되기 때문에 글로벌Configuration을 편집할 필요 없이 다른 계정으로 링크된 다른 저장소에서 작업할 수 있습니다.
셸 스크립트를 사용하여 "액티브"하고 싶은 계정으로 전환합니다.기본적으로는 새로운 시작부터 시작하여 하나의 계정을 적절하게 구성하고 작동하도록 한 다음 이러한 파일을 적절한 접두사를 가진 이름으로 이동합니다.이후 명령어 "github" 또는 "gitxyz"를 사용하여 다음과 같이 전환할 수 있습니다.
# my github script
cd ~/.ssh
if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ]
then
;
else
echo "Error: missing new files"
exit 1
fi
# Save a copy in /tmp, just in case
cp id_rsa /tmp
cp id_rsa.pub /tmp
cp config /tmp
echo "Saved old files in /tmp, just in case"
rm id_rsa
rm id_rsa.pub
rm config
echo "Removed current links/files"
ln git_dhoerl id_rsa
ln git_dhoerl.pub id_rsa.pub
ln config_dhoerl config
git config --global user.email "dhoerl@<company>.com"
git config --global github.user "dhoerl"
git config --global github.token "whatever_it_is"
ssh-add -D
난 운이 좋았어또한 실행 스크립트를 Xcode(Mac 사용자용)로 작성했습니다.그래서 (git을 사용한 이후) 적절한 설정이 없으면 프로젝트를 빌드할 수 없습니다.
의존관계 뒤에 배치된 스크립트 실행(셸로 /bin/ksh 사용):
if [ "$(git config --global --get user.email)" != "dhoerl@<company>.com" ]
then
exit 1
fi
편집: 새로운 파일의 존재에 대한 테스트를 추가하고 /tmp에 오래된 파일을 복사하여 아래 @naomik의 코멘트에 대응합니다.
Windows 용에서는, 각 레포의 credential을 사용하고, 이것을 확인했습니다.
cd c:\User1\SomeRepo
git config --local credential.https://github.com.user1 user1
git config --local credential.useHttpPath true
git config --local credential.helper manager
git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git
credential 형식입니다.https://github.com 는 credential 도우미에게 credential의 URL을 알려줍니다.useHttpPath'는 자격 증명 관리자에게 자격 증명 경로를 사용하도록 지시합니다.useHttpPath를 생략하면 자격정보 매니저는 https://github.com의 자격정보를 1개 저장합니다.포함되면 자격 증명 관리자가 여러 자격 증명을 저장합니다. 이것이 제가 정말 원했던 것입니다.
심플하고 간단한 수정으로 혼란을 피할 수 있습니다.
Windows 사용자가 다른 프로젝트에 대해 여러 또는 다른 git 계정을 사용할 수 있습니다.
음음음:
제어판으로 이동하여 자격 증명 관리자를 검색합니다. 다음 -> credentials > Windows credentials Manager -> Windows credentials로 합니다.
이제 Generic Credentials Heading 아래에 있는 git:git//github.com 노드를 삭제합니다.
현재 자격 증명이 제거됩니다.이제 git pull을 통해 프로젝트를 추가할 수 있으며 사용자 이름과 비밀번호를 요구합니다.
다른 계정에서 문제가 발생하면 동일한 프로세스를 수행합니다.
당신이 요청한 것을 어떻게 달성해야 하는지 설명하는 많은 답변들이 있지만, 저는 다른 관점을 제안하고 싶습니다.
일과 개인적인 것을 분리하는 것은 할 말이 있다고 생각합니다.모든 운영 체제에서 사용자 계정을 전환하는 것은 매우 간단합니다. 따라서 일과 놀이를 위해 별도의 OS 계정을 만들고 각각에 다른 github 계정을 로그인할 수 있습니다.
명확한 관심사 분리를 유지하는 것도...
- 업무 파일이 개인 파일과 혼재하지 않도록 하다
- 잘못된 자원에 대해 조치를 취할 위험을 줄이다
- 보안 침해를 하나의 계정/증명서에 국한할 수 있다
여기서 생각할 수 있는 회피책이 많이 보입니다.@Greg @Greg @Greg @Greg greggreg의greggreggreg 。,, 도, 도, 별, 별, 별, 별, 습, 습, 습, however, however, however, however, however, however, however, however, however, howeverssh keys
장기적으로는 모든 다른 계좌에 대해서요.이 비디오에서는 간단하게 설명합니다.다음은 그 비디오 블로그에서 언급한 단계입니다.
순서 1 - 새 계정의 새 SSH 키를 생성하여 원래 파일이 아닌 다른 파일(~/.ssh/id_rsa_new_account_name 등)에 저장합니다. ~/.ssh/id_rsa
ssh-keygen -t rsa -C "your-email-address"
순서 2 - 새 키 연결
- 다음으로 두 번째 GitHub 계정에 로그인합니다.
- 「 」에 합니다.
Account Overview
~/.ssh/id_rsa_new_account_name.pub
의 범위 내에서SSH Public Keys
★★★★★★ 。 - 에 "SSH" "ID" "ID" 를 새 를 합니다.
ssh-add ~/.ssh/id_rsa_new_account_name
했을 경우, '아까', '아까', '아까', '아까'라는Identity Added
.
순서 3 - 컨피규레이션파일 작성
touch ~/.ssh/config
그리고 다음 내용을 파일에 저장하세요.
#Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
#New Account
Host github-new-account-name
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_new_account_name
4단계 - 지금 바로 시험해보세요.새로운 계정과 관련된 보고서를 사용할 때마다 해당 보고서에 이 정보를 입력합니다.
git remote add origin git@github-new-account-name:your-domain.com/your-repo.git
만약 당신이 그 일을 망치고 싶지 않다면~/.ssh/config
을 대신 할 수 .git config core.sshCommand "ssh -i ~/.ssh/custom_id_rsa"
하다
나머지 설정은 동일합니다.
번째 의 새 로 만듭니다.
ssh-keygen -t rsa -f ~/.ssh -f ~/.ssh/custom_id_rsa
다른 계정으로 github에 로그인하고 https://github.com/settings/keys에 접속하여 내용을 붙여넣습니다.
~/.ssh/custom_id_rsa.pub
가 를 있는 것을 .「 URL 」 、 「 HTTPS 」 、 「 SSH 」 、 「 SSH 」
git remote set-url origin git@github.com:upstream_project_teamname/upstream_project.git
여러 계정에 대해 여러 SSH 키를 생성하는 것 외에 동일한 계정 이메일을 사용하여 각 프로젝트에 공동작업자를 추가하고 암호를 영구적으로 저장하는 것도 고려할 수 있습니다.
#this store the password permanently
$ git config --global credential.helper wincred
여러 개의 계정을 다른 이메일로 설정하고 각 계정에 공동작업자 중 한 명으로 동일한 사용자와 이메일을 배치합니다.이를 통해 SSH 키를 추가하거나 다른 사용자 이름으로 전환하거나 인증을 위해 이메일을 보내지 않고도 모든 계정에 액세스할 수 있습니다.
SSH 키쌍을 사용하여 개인 보고서를 작성했습니다.이것은 Windows용 git에서 테스트되었습니다.
출처 : https://docs.github.com/en/free-pro-team @syslog / github / github / generating - a - new - syslog - key - and - syslog - to - syslog - 에이전트
A. 공개 키와 개인 키 쌍을 생성합니다.
- git bash 시작
- 실행합니다.
ssh-keygen -t ed25519 -C "your_email@example.com"
- 키를 저장할 파일을 입력하라는 메시지가 표시되면 Enter 키를 눌러 기본값을 사용합니다.
- 빈 패스프레이즈를 표시하려면 Enter 키를 누릅니다.
- 에이전트를합니다.ssh の : start agent 。
eval $(ssh-agent)
- 의 패스 프레이즈를 합니다.
ssh-add ~/.ssh/id_ed25519
B. GitHub 계정에 SSH 키 추가
- 합니다.
clip < ~/.ssh/id_ed25519.pub
- GitHub - 、 [ Profile ]- > [ Settings ]-> [ SSH Keys ]-> [ New SSH Key ]으로 이동합니다.
- 제목을 붙이다.예: "Windows on MacBook Pro"
- 키를 붙여넣고 "Add SSH Key"를 누릅니다.
C. SSH 접속 테스트
- 같이 입력합니다.
ssh -T git@github.com
- 경고 메시지를 보려면 "예"를 누르십시오.
- 「Hi username!」라고 표시됩니다.테스트에 성공했음을 나타냅니다.
D. SSH 키를 사용하도록 로컬 저장소를 설정합니다.
- 이메일 및 사용자 이름 변경:
git config user.email your_email@example.com
git config user.name github_username
- git를 사용하도록 원격 링크를 업데이트합니다.첫 번째 목록 원격 URI:
git remote -v
git remote set-url origin git@github.com:github_username/your-repo-name.git
E. 테스트
git remote show origin
SSH 키쌍을 처리하지 않고 간단한 접근법
.user.name
&user.email
에게.당신이 그 레포에 밀고 싶은 사람들에게요.
예:저는 gitlab에 프로젝트가 있는 워크 계정을 가지고 있습니다.이 프로젝트/리포를 복제한 후 터미널에 다음과 같이 입력합니다.
git config user.name "my-work-username"
git config user.email "my-work-email-id"
이제 Gitlab에 내 개인 계정과 연관짓고 싶은 다른 개인 프로젝트/보고가 있다고 가정해 보겠습니다.위와 같이 복제 후 다음과 같이 입력합니다.
git config user.name "my-personal-username"
git config user.email "my-personal-email-id"
이게 도움이 됐으면 좋겠다.도움이 되는 경우는, 업 투표해 주세요.
가장 쉽고 간단한 접근법(IMHO) - 구성 파일이 필요 없음 - 번거롭지 않음
다른 ssh 키를 생성하기만 하면 됩니다.
새로운 작업 GitHub 계정이 있다고 가정해 봅시다.새로운 키를 생성하기만 하면 됩니다.
ssh-keygen -t rsa -C "email@work_mail.com" -f "id_rsa_work_user1"`
위의 작업을 한 번만 실행하면 됩니다.
이제 이전 것과 새 것을 보고 실행하도록 해야 합니다.
ls -al ~/.ssh
이제부터는 이 두 가지를 전환할 때마다 다음 작업을 수행합니다.
ssh-add -D
ssh-add ~/.ssh/id_rsa_work_user1 #make to use this without the suffix .pub
이전 스위치로 전환하려면 다음 절차를 다시 수행합니다.
ssh-add -D
ssh-add ~/.ssh/<previous id_rsa>
나는 이 보석이 매우 유용하다는 것을 알았다: sshwitch
https://github.com/agush22/sshwitch
http://rubygems.org/gems/sshwitch
ssh 키를 전환하는 데 도움이 됩니다.먼저 모든 데이터를 백업해야 합니다.
또한 커밋과 관련된 올바른 이메일 주소가 있는지 확인하기 위해 ~/.gitconfig 파일에 올바른 이메일 주소가 있는지 확인했습니다.
다른 쉬운 방법은 여러 데스크톱 앱을 사용하는 것입니다. 예를 들어 Github 데스크톱에서는 계정 A를 사용하고 Github Kraken에서는 계정 B를 사용하는 것입니다.
만약 WSL이 설치되어 있다면, WSL과 윈도에 각각 다른 두 개의 git 계정을 가질 수 있습니다.
IntelliJ Idea 에는, https://www.jetbrains.com/help/idea/github.html#da8d32ae 를 서포트 기능이 짜넣어져 있습니다.
디렉토리.gitconfig
, 퍼스널액세스
파일을 키를 사용하거나 키를 설정합니다.gitconfig
, 당신은 인 것을 할 수 ..gitconfig
설정하다 구조(: OSX 디렉토리 구조).
# root level git config
~/.gitconfig
# your personal repos under some folder like
../personal/
../home/
~/Dropbox/
.gitconfig
:~/Dropbox/.gitconfig
[user]
email = first.last@home.com
name = First Last
[credential]
username = PersonalGithubUsername
helper = osxkeychain
level 트 in in 。.gitconfig
포함을 추가하다퍼스널 디렉토리에 있을 때마다 퍼스널Configuration의 소스를 지정하는 섹션.여기서의 모든 설정은 루트 구성을 덮어씁니다.includeIf
덮어쓸 설정 다음에 표시됩니다.
[user]
email = first.last@work.com
name = "First Last"
[credential]
helper = osxkeychain
[includeIf "gitdir:~/Dropbox/**"]
path = ~/Dropbox/.gitconfig
개인 업무보고를 진행하거나 개인 업무보고를 취소해 보십시오.
git push
# prompts for password
메시지가 표시되면 개인 비밀번호를 입력하거나 계정 개발자 설정에서 만든 개인 액세스 토큰을 입력하는 것이 좋습니다.해당 토큰을 비밀번호로 입력합니다.
git-credential-osxkeychain을 이미 사용하고 있다고 가정하면 개인 자격 증명이 키체인에 저장되어야 합니다.따라서 2개의 키체인이 있습니다.github
하다
옵션 0: OS 설정을 조작하고 싶지 않습니다.하나의 repo에 대해 다른 공개 키를 가진 다른 github 계정에 커밋하고 싶을 뿐입니다.
솔루션:
새 키 생성: ssh-keygen - t rsa - b 4096 -f ~/.keygen/alt_module
키 세트에 키 추가: ssh-add -K ~/.ssh/alt_rsa
pub 키를 복사하여 github 계정에 추가합니다(github 설명 참조).
github을 사용하여 키를 테스트합니다.ssh - i ~ / . disc / alt _ discount T git@github.com
git protocol(HTTP가 아님): git clone git@github: my account...
클론된 repo:
coreCommand " - / / git config core . ssh " ssh - i ~ / . ssh / alt _ rsa - F / dev / null "
config.name [ account ]syslog config user.name [syslog ]
user.email]my config user.email [my account ]이제 당신은 당신의 일상적인 git 계정을 방해하지 않고 git push를 올바르게 할 수 있을 것입니다.
하나의 Windows 머신(HTTPS)에서 여러 GitHub 계정 관리
이전에 머신에서 git을 사용하여 git 글로벌컨피규레이션파일을 설정했다고 칩니다.확인하려면 터미널을 열고 다음을 수행합니다.
git config --global -e
편집기가 열리고 다음과 같은 내용이 표시될 수 있습니다.
[user]
email = yourEmail@gmail.com
name = Your_Name
...
매번 자격 증명을 입력하지 않고 GitHub 계정에 코드를 푸시할 수 있기 때문에 매우 좋습니다.하지만 다른 계정에서 리포할 필요가 있으면 어떻게 해야 할까요?이 경우 git은 403 오류와 함께 거부되며 글로벌 git 자격 정보를 변경해야 합니다.credential 매니저에 repo 이름을 저장하는 이 편리한 lat 세트를 만들려면 다음 절차를 수행합니다.
git config --global credential.github.com.useHttpPath true
다시 한 번 git config --global -e를 열면 새로운 설정 행이 나타납니다.
[credential]
useHttpPath = true
...
바로 그겁니다.이제 계정을 처음 누르면 Screenshot_1 팝업이 나타납니다.
이 repo 계정 자격 증명에 대해 specific을 입력하면 repo에 대해 이 계정이 "바인드"됩니다.따라서 머신에서는 원하는 수의 계정/보고서를 지정할 수 있습니다.
자세한 설명은 유튜브에서 찾은 멋진 동영상을 보실 수 있습니다.https://youtu.be/2MGGJtTH0bQ
도커 사용!
이것은 모두에게 적합하지 않을 수도 있지만 결국 나를 위해 하게 되었다.
모든 개발은 이제 도커 컨테이너 안에서 이루어집니다.저는 vim 사용자이지만 VSCode에 도커 컨테이너와 함께 사용할 수 있는 플러그인이 있다는 것을 알고 있습니다.
프로젝트/언어별로 도커 컨테이너가 다르기 때문에 각각 다른 git 설정을 사용할 수 있습니다.문제는 해결됐습니다.
당신이 좋아하는 에디터에 이 대사를 추가하기만 하면 당신은 평생 끝납니다.
git remote set-url origin https://user-token-of-particular-user@github.com/profile-name/repo-name
다른 답변과는 달리, 몇 가지 단계를 거쳐야 같은 기계에서 두 개의 다른 github 계정을 사용할 수 있습니다.저에게는 두 단계로 동작했습니다.
다음 작업만 하면 됩니다.
1) SSH 공개 키와 개인 키 쌍을 생성한다.~/.ssh
이
2) 생성된 공개키를 >>>>>>의 각 계정에 추가합니다.
SSH 공용 키와 개인 키 쌍을 생성하려면 다음 명령을 사용합니다.
cd ~/.ssh
ssh-keygen -t rsa -C "email@work.com" -f "id_rsa_WORK"
ssh-keygen -t rsa -C "email@gmail.com" -f "id_rsa_PERSONAL"
의 명령어 「」의 입니다.id_rsa_WORK
★★★★★★★★★★★★★★★★★」id_rsa_WORK.pub
업무용 계정(예: git.work.com)에 파일이 생성되고,id_rsa_PERSONAL
★★★★★★★★★★★★★★★★★」id_rsa_PERSONAL.pub
개인 계정용으로 생성됩니다(예: github.com).
후 각공개 )*.pub
를 각 계정에 대해 파일화하여 스텝2를 수행합니다.
PS: 아래의 각 git 계정에 대해 호스트 엔트리를 작성할 필요는 없습니다.~/.ssh/config
두 계정의 호스트 이름이 다를 경우 다른 답변에서 설명한 바와 같이 파일을 작성합니다.
몇 가지 일반적인 인증 정보를 사용하여 프로젝트를 푸시해야 하며 푸시해서는 안 됩니다.새로운 머신으로 기동하면, 다음의 순서에 따라서 gitlab credential을 올바르게 설정해 사용합니다.
- 기계에 pubic/private ssh 키를 만듭니다.
- 공개 키를 gitlab/github UI 인터페이스에 복사 붙여넣기(cmd 행을 통해 사용법을 암시하는 사람은 무료 맥주를 받을 수 있습니다.)
- http url이 아닌 git을 통해 repo를 복제해야 합니다.
- git 명령에 동일한 접두사를 계속 입력하지 않도록 git 별칭을 설정합니다.
- git commit 중에는 항상 작성자와 이메일 플래그를 사용합니다.
- 평소처럼 git을 사용합니다.
이 모든 것은 다음과 같습니다.
# create the public / private key credentials on that specific machine
ssh-keygen -t rsa -b 4096 -C "<<you>>@org.net" -f ~/.ssh/id_rsa.<<you>>.`hostname -s`
# setup your public key in the gitlab ui
cat ~/.ssh/id_rsa.<<you>>.`hostname -s`
# make sure you clone the repo via the git and not http url
git clone git@git.in.org.net:org/some-repo.git
# set the git alias to avoid constant typing of the repeating prefix to the git cmd
alias git='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.<<you>>.`hostname -s`" git'
# during git commit ALWAYS use the author and e-mail flags
git add --all ; git commit -nm "$git_msg" --author "YourFirstName YourLastName <you@phz.fi>"
# use git as normal
git fetch --all; git pull --all
- 변경을 다른 GitHub 계정에 푸시할 디렉토리로 이동합니다.
터미널/명령줄에 새 SSH 키를 만듭니다.
ssh-keygen -t rsa -C “your-email-address”
다음에, 다음과 같이 표시됩니다.
공개/비공개 RSA 키쌍을 생성하고 있습니다.키를 저장할 파일(/home/your_username/.ssh/id_rsa):
경로 뒤에 식별 가능한 파일 이름을 복사하여 붙여넣습니다.
/home/your_username/.ssh/id_rsa_personal
4) 다음 사항을 요구합니다.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
5) 다음 명령을 입력하여 로컬머신에 있는 모든 SSH 키를 표시할 수 있습니다.
ls -al ~/.ssh
새로운 SSH 키파일이 표시됩니다.보시다시피 id_rsa_test와 id_rsa_personal.pub 둘 다 가지고 있습니다.
drwx------ 2 gmadmin gmadmin 4096 Nov 16 22:20 .
drwxr-xr-x 42 gmadmin gmadmin 4096 Nov 16 21:03 ..
-rw------- 1 gmadmin gmadmin 1766 Nov 16 22:20 id_rsa_personal
-rw-r--r-- 1 gmadmin gmadmin 414 Nov 16 22:20 id_rsa_personal.pub
-rw-r--r-- 1 gmadmin gmadmin 444 Nov 6 11:32 known_hosts
6) 다음으로 id_rsa_personal.pub 파일에 저장되어 있는SSH 키를 복사해야 합니다.원하는 텍스트 편집기에서 열 수 있습니다.현재 atom을 사용하고 있기 때문에, 다음의 커맨드로 파일을 열었습니다.
atom ~/.ssh/id_rsa_personal.pub
그러면 다음과 같은 결과가 나타납니다.
ssh-rsa AAB3HKJLKC1yc2EAAAADAQABABAQCgU5+ELtwsKkmcoeF3hNd7d6CjW+dWut83R/Dc01E/YzLc5ZFri18doOwuQoeTPpmIRVDGuQQsZshjDrTkFy8rwKWMLXl7va5olnGICcpg4qydEtsW+MLDmayW1HHSi2xHMGHlNv
7) 복사하여 GitHub 계정 → 설정 → SSH 및 GPG 키 8) 새 SSH 키를 클릭합니다.키를 복사하여 제목을 지정하고 추가합니다. 9) 단말기에서 키를 추가합니다.
ssh-add ~/.ssh/id_rsa_personal
Enter passphrase for /home/your_username/.ssh/id_rsa_personal:
10) 사용자 및 비밀번호를 설정합니다.
git config --global user.name "gitusername"
git config --global user.email "gitemail"
11) 델은, 지금, 적극적으로 임할 준비가 되어 있습니다.
git init
git add .
git commit
git push
언급URL : https://stackoverflow.com/questions/3860112/multiple-github-accounts-on-the-same-computer
'code' 카테고리의 다른 글
텍스트 파일 끝에 출력을 추가하는 방법 (0) | 2023.04.23 |
---|---|
iPhone Core Data Unresolved 오류 저장 중 (0) | 2023.04.18 |
WPF 응용 프로그램에서 클래스 라이브러리에 XAML 컨트롤을 복사한 후의 문제 (0) | 2023.04.18 |
Xcode 10.2.1 명령 PhaseScriptExecution이 0이 아닌 종료 코드로 실패했습니다. (0) | 2023.04.18 |
UIButton 글꼴 크기를 너비에 맞게 조정 (0) | 2023.04.18 |