alice2 つ以上のプライベート リポジトリを持つ github.com ユーザーだとしましょうrepoN。repo1この例では、 とという名前の 2 つのリポジトリのみを使用します。repo2
https://github.com/alice/repo1
https://github.com/alice/repo2
おそらくサーバーまたは複数のサーバーで、パスワードを入力せずにこれらのリポジトリからプルする必要があります。git pull origin masterたとえば、実行したいのですが、パスワードを要求せずにこれを実行したいとします。
あなたは ssh-agent を扱うのが好きではありません。~/.ssh/configホスト名とユーザー名に応じて使用する秘密鍵を ssh クライアントに知らせるファイルを発見しました (または現在発見しています)。次のような単純な構成エントリがあります。これ:
Host github.com
HostName github.com
User git
IdentityFile /home/alice/.ssh/alice_github.id_rsa
IdentitiesOnly yes
先に進んで(alice_github.id_rsa, alice_github.id_rsa.pub)キーペアを作成し、次にリポジトリの.git/configファイルに移動して、リモートの URL を次のように変更しましたorigin。
[remote "origin"]
url = "ssh://git@github.com/alice/repo1.git"
最後に、リポジトリSettings > Deploy keysセクションに移動して、alice_github.id_rsa.pub
この時点でgit pull origin master、パスワードを入力しなくても問題なく実行できます。
しかし、2 番目のリポジトリはどうでしょうか。
したがって、あなたの本能はそのキーを取得してrepo2の Deploy キーに追加することですが、github.com はエラーを出して、キーが既に使用されていることを通知します。
次に、別のキーを生成して (ssh-keygen -t rsa -C "alice@alice.com"もちろんパスワードなしで使用します)、これが混乱しないように、次のようにキーに名前を付けます。
repo1キーペア:(repo1.alice_github.id_rsa, repo1.alice_github.id_rsa.pub)
repo2キーペア:(repo2.alice_github.id_rsa, repo2.alice_github.id_rsa.pub)
新しい公開鍵repo2を github.com の Deploy keys 構成に配置しますが、対処すべき ssh の問題があります。
github.comリポジトリが同じドメインでホストされている場合、ssh はどのキーを使用するかをどのように判断できますか?
.ssh/configファイルが指してgithub.comいて、プルを実行するときにどのキーを使用すればよいかわかりません。
そこで、github.com でトリックを見つけました。各リポジトリが異なる github.com サブドメインにあることを ssh クライアントに伝えることができますrepo1.github.com。repo2.github.com
そのため、最初にレポ クローンのファイルを編集し.git/configます。代わりに、次のようになります。
レポ1の場合
[remote "origin"]
url = "ssh://git@repo1.github.com/alice/repo1.git"
repo2 の場合
[remote "origin"]
url = "ssh://git@repo2.github.com/alice/repo2.git"
そして、.ssh/configファイルで、各サブドメインの構成を入力できるようになります:)
Host repo1.github.com
HostName github.com
User git
IdentityFile /home/alice/.ssh/repo1.alice_github.id_rsa
IdentitiesOnly yes
Host repo2.github.com
HostName github.com
User git
IdentityFile /home/alice/.ssh/repo2.alice_github.id_rsa
IdentitiesOnly yes
git pull origin masterこれで、両方のリポジトリからパスワードを入力せずに実行できるようになりました。
複数のマシンがある場合は、各マシンにキーをコピーして再利用できますが、マシンとレポごとに 1 つのキーを生成するように脚の作業を行うことをお勧めします。処理するキーが増えますが、1 つが侵害された場合の脆弱性は低くなります。