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/ディレクトリ内のすべてのリポジトリを2番目の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。また、これを何とかパスワード認証に拡張したいと思います。

ベストアンサー1

おすすめ記事