2011-12-07 18 views
1

gitosisを使用してホームサーバーにgitリポジトリをホストしています。gitリポジトリにプッシュ&プルするための異なるキー

私は3つのSSH鍵を受け入れるように設定しました:私の主なもの(パスフレーズなし)は読み書き可能ですが、私はパスフレーズ型です(他の人がルートを持っているサーバーを置くのがより快適です)書き込みアクセス、および読み出しアクセスのみを有する第3の鍵を含む。

アイデアはリモートホスト(私は所有していないので、誰かがそれにルートを持っている)です。パスフレーズされた秘密鍵と3番目の(読み取り専用)鍵を持つことができます。パスワードなしで引っ張って、パスフレーズされたキーを使用して戻ることができます。

Gitosisは正常で、適切な権限を持つキーを受け入れます。しかし、私は両方のキーを使用しているときに私が望むように動作させることはできません。私はSSHの設定でそれらを指している - の〜/ .ssh/configの中で、私は次のことを持っているリモートホスト上:

Host * 
IdentityFile ~/.ssh/id_rsa 
IdentityFile ~/.ssh/id_rsa.passphrase 

私は引っ張ったり、ちょうどいいのよクローンする場合 - 操作はプロンプトを表示せずに完了します私はパスワードを求めています。しかし、私がプッシュすると、私に許可がないというメッセージが表示されます。それは明らかに最初のキーファイルを試しただけです。

IdentityFile行をスワップすると、プッシュしているかプルしているかにかかわらず、パスワードの入力が求められます。だから、それはまだ最初のキーファイルを試しているだけです。

プッシュと他の書き込み操作を実行するときに1つのキーファイルを使用し、読み取り専用操作を実行するときに他の操作を実行する方法がありますか?

+1

Gitoliteに切り替えるには遅すぎますか?私は非常にそれをお勧めしたいと思います。 – Nic

答えて

1

これを行うために複数のリモコンを設定することができます。各リモコンは異なるURLを持つことができます。あなたの好きな場所を指し、必要なキーを使用するようにあなたのURLを.ssh/configファイルで設定することができます。

+0

それは良い解決策でした。私はpushurlをダミーのホスト名に設定しました。次に、SSH設定ファイルに同じダミーのホスト名を使用し、HostNameのrealhost.example.com行と関連するIdentityFile行を追加しました。これは素晴らしい作品です。ありがとう! – tremby

関連する問題