特定のドメインのgit pushにSSHキーを指定する 質問する

特定のドメインのgit pushにSSHキーを指定する 質問する

[email protected]:gitolite-admin次のようなユースケースがあります。ユーザー の秘密鍵を使用してにプッシュできるようにしたいのですgitolite-adminが、 には「自分の」秘密鍵を使用してプッシュしたいと[email protected]:some_repo考えています。私の知る限り、ユーザー名とサーバー名はどちらの場合も同じなので、 を使用してこの問題を解決することはできません。私は主に自分の秘密鍵を使用するので、用に~/.ssh/configそれを で定義しています。単一の呼び出しに使用されるキーをオーバーライドする方法を知っている人はいますか?~/.ssh/config[email protected]git

(余談ですが、gitolite はキーに基づいて誰がプッシュを実行しているかを区別するため、アクセス、所有権、監査の観点から、user@server 文字列がさまざまなユーザーで同一であっても問題にはなりません。)

ベストアンサー1

ユーザーとホストが同じであっても、 では区別できます~/.ssh/config。たとえば、設定が次のようになっているとします。

Host gitolite-as-alice
  HostName git.company.com
  User git
  IdentityFile /home/whoever/.ssh/id_rsa.alice
  IdentitiesOnly yes

Host gitolite-as-bob
  HostName git.company.com
  User git
  IdentityFile /home/whoever/.ssh/id_dsa.bob
  IdentitiesOnly yes

次に、URL でホスト名の代わりにgitolite-as-aliceと を使用します。gitolite-as-bob

git remote add alice git@gitolite-as-alice:whatever.git
git remote add bob git@gitolite-as-bob:whatever.git

注記

IdentitiesOnly yesデフォルト ID の使用を防ぐオプションを含める必要があります。そうしないと、デフォルト名に一致する ID ファイルも存在する場合、他の構成オプション (「先着順」に従う) とは異なり、このIdentityFileオプションは試行する ID のリストに追加されるため、最初に試行されます。参照:https://serverfault.com/questions/450796/how-could-i-stop-ssh-offering-a-wrong-key/450807#450807

おすすめ記事