[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