libsecret을 사용하여 여러 Github 계정(단일 저장소 아님)에 대한 자격 증명을 저장하는 방법

libsecret을 사용하여 여러 Github 계정(단일 저장소 아님)에 대한 자격 증명을 저장하는 방법

Ubuntu 18.04에서 2개의 github 계정을 사용하려고 합니다. PAT(Personal Access Token)도 사용합니다. 내가 달성하고 싶은 설정을 따릅니다.

  • 2개의 github 계정이 있어야 합니다 - 기본 계정이고 동일한 컴퓨터에서 작업합니다.
  • 이 디렉터리 내에 생성된 모든 저장소는 ~/work/작업 이름과 이메일을 사용하여 자동으로 제출해야 하며, 이 디렉터리 외부의 모든 저장소는 마스터 이름과 이메일을 사용하여 제출해야 합니다.
  • 로컬에서 github로 데이터를 푸시하려면 libresecret을 사용하여 두 계정(기본 및 작업)에 대한 개인 액세스 토큰을 기억하세요.
  • SSH 대신 개인 액세스 토큰을 사용하십시오.
  • 저장소별로가 아닌 계정별로 자격 증명을 저장합니다(예 useHttpPath: .

이것이 제가하는 것입니다.

1단계: Github 마스터 계정 추가

  1. $ git config --global user.name "Johnny"
  2. $ git config --global user.email [email protected]
  3. $ sudo apt install libsecret-1-0 libsecret-1-dev
  4. $ cd /usr/share/doc/git/contrib/credential/libsecret/
  5. $ sudo make
  6. $ git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

위의 방법을 사용하면 사용자 이름과 비밀번호를 반복해서 입력하지 않고도 기본 github 계정에 코드를 푸시할 수 있습니다. 한 번만 입력하면 libsecret이 대신합니다.

~/.gitconfig이 시점까지.

[user]
    name = Johnny
    email = [email protected]

[credential]
    helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

2단계: 직장 계정 추가

~/work/디렉터리 내의 모든 저장소를 두 번째 github 계정과 연결하고 싶습니다 . 나는 다음과 같이 변경합니다 -

글로벌 구성~/.gitconfig

[user]
    name = Johnny
    email = [email protected]

[credential]
    helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

작업별 구성~/work/.gitconfig

[user]
    name = John Doe
    email = [email protected]

이제 작업 코드를 푸시하려고 하면 다음 오류가 발생합니다.

remote: Permission to work_username/mywork.git denied to main_username.
fatal: unable to access 'https://github.com/work_username/mywork.git/': The requested URL returned error: 403

동일한 호스트에서 실행되는 여러 저장소에 대한 자격 증명 관리를 분할하여 이 문제를 해결했습니다.

  1. $ git config --global credential.github.com.useHttpPath true

최종 ~/.gitconfig:

[user]
    name = Johnny
    email = [email protected]

[credential]
    helper = /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

[credential "github.com"]
    useHttpPath = true

질문

문제는 내가 만드는 모든 새 저장소에 대해 사용자 이름과 비밀번호를 설정해야 한다는 것입니다. 글에는 매번 비밀번호를 입력하지 않고도 사용할 수 있다고 적혀 있습니다.

저장소가 있는 디렉터리에 따라 인증에 다른 비밀번호를 사용하는지 어떻게 libsecret알 수 있나요? git이것은 이미 사용된 커밋 이름/이메일에서 발생하고 있습니다 IncludeIf. 또한 이것을 어떻게든 비밀번호 인증으로 확장하고 싶습니다.

관련 정보