두 개의 GitHub 계정이 있습니다. 개인용 사본 1개와 업무용 사본 1개. 각각은 자체 SSH 키 gh_personal
와 gh_business
내부 항목 으로 설정됩니다 ~/.ssh
.
에 개인 프로젝트가 있습니다 ~/code/bejebeje
. 프로젝트 작업을 할 때마다 다음 명령을 실행해야 합니다.
eval `ssh-agent -s`
다음은:
ssh-add ~/.ssh/gh-personal
그래야만 git pull
과 같은 일을 할 수 있습니다 git push
.
짐작하셨겠지만, 저는 항상 이 일을 하는 것을 잊어버립니다.
디렉토리에 들어갈 때 Linux 시스템에서 이 작업을 자동으로 수행하도록 하는 방법이 있습니까 ~/code/bejebeje
?
저는 아치 리눅스를 사용하고 있습니다.
답변1
다음과 같이 다양한 주소와 일치하는 ssh_config
AKA를 만들 수 있습니다 .~/.ssh/config
Host *
Protocol 2
PreferredAuthentications publickey,password
VisualHostKey yes
Host work_gh
HostName github.com
IdentityFile ~/.ssh/id_rsa.work
IdentitiesOnly yes
ForwardAgent no
LogLevel DEBUG
Host personal_gh
HostName github.com
IdentityFile ~/.ssh/id_rsa.personal
IdentitiesOnly yes
ForwardAgent no
LogLevel DEBUG
또한 이 구성에는 ssh-agent가 필요하지 않으며 프록시 사용을 시도하지 않습니다. 설정할 수 있는 옵션에 대한 IdentitiesOnly
자세한 내용을 참조하세요.man ssh_config
ssh_config
Git으로 돌아가서 복제하려는 주소의 호스트 이름으로 "personal_gh"라는 이름을 사용할 수 있습니다.
git clone git@personal_gh:mypersonalghuser/things.git
You can also change existing git repositories:
git remote show origin
* remote origin
Fetch URL: git@personal_gh:mypersonalghuser/things.git
Push URL: git@personal_gh:mypersonalghuser/things.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
두 개의 계정에 푸시해야 하는 저장소가 있는 경우 git에 여러 개의 원격 장치를 추가하고 다음과 같이 푸시하는 것이 좋습니다.
git push my-dest-account-1 master
git push my-dest-account-2 master
다음을 통해 리모컨을 추가할 수 있습니다.
git remote add --help
어쨌든 SSH 클라이언트 구성에서 이를 구성한 경우 사용되는 SSH 키는 일반적으로 git 주소의 호스트 이름 부분을 기반으로 일치됩니다.~/.ssh/config