내가 있는 디렉토리를 기반으로 SSH 키를 자동으로 추가합니다.

내가 있는 디렉토리를 기반으로 SSH 키를 자동으로 추가합니다.

두 개의 GitHub 계정이 있습니다. 개인용 사본 1개와 업무용 사본 1개. 각각은 자체 SSH 키 gh_personalgh_business내부 항목 으로 설정됩니다 ~/.ssh.

에 개인 프로젝트가 있습니다 ~/code/bejebeje. 프로젝트 작업을 할 때마다 다음 명령을 실행해야 합니다.

eval `ssh-agent -s`       

다음은:

ssh-add ~/.ssh/gh-personal

그래야만 git pull과 같은 일을 할 수 있습니다 git push.

짐작하셨겠지만, 저는 항상 이 일을 하는 것을 잊어버립니다.

디렉토리에 들어갈 때 Linux 시스템에서 이 작업을 자동으로 수행하도록 하는 방법이 있습니까 ~/code/bejebeje?

저는 아치 리눅스를 사용하고 있습니다.

답변1

다음과 같이 다양한 주소와 일치하는 ssh_configAKA를 만들 수 있습니다 .~/.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_configssh_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

관련 정보