コードリポジトリとSparkleshareの両方に使用されるgitoliteを実行しているマシンがあります。問題は、Sparkleshareが独自のキーペアを作成することです。そのキーペアが最初に認証され、コードリポジトリに対する権限がないため、gitoliteは他のペアを試行せずに終了します。
Sparkleshareに元の鍵を使用するように指示する方法、またはgitoliteに正しい秘密鍵を使用させるエイリアスを作成する方法を理解する必要があるかもしれないと考えています。
SparkleShareを使用したことがないため、その要件についてはよくわかりませんが、ドキュメントをいくつか読んで、Git とどのように相互作用するかを感じてみました。Git リポジトリを介してデータを公開およびプルするように設計されているようです (「独自のサーバー」、Github、および Gitorious をデータ ストレージ/転送/同期などに使用すると説明されています)。
以下では、SparkleShare リポジトリと他の非 SparkleShare リポジトリの両方を同じ Gitolite インストールで提供したいと仮定しています (Gitolite を使用して両方の種類のリポジトリへのアクセスを制御できるようにするため)。
SparkeShare の「use your own server」ドキュメントに記載されている一般的な「Git over SSH」ではなく、Gitolite のルールに従ってアクセスを許可すれば、Gitolite がホストするリポジトリで問題なく動作するように思えます。
特に、を使用したり、公開鍵を Gitolite ユーザーの にインストールしssh-copy-id
たりしないでください。これにより、これらの公開鍵の所有者は、Gitolite インストールへの「管理アクセス」を効率的に付与されます (たとえば、Gitolite インストールとそのアカウントに保存されているその他のものを完全に削除する機能)。代わりに、Gitolite を介してユーザーを追加し、新しい SparkeShare ユーザーに Gitolite がホストするリポジトリへのアクセスを許可する必要があります (クローンに変更を加えてプッシュします。ユーザーの公開鍵を に入れ、リポジトリのアクセス リストに追加します) 。1 人の Gitolite ユーザーに複数の SSH キーを関連付けることもできます。cat keyfile >> .ssh/authorized_keys
.ssh/authorized_keys
gitolite_admin
keydir/newusername.pub
newusername
conf/gitolite.conf
command=
「フル アクセス」キー (なし) と Gitolite で管理されたキー ( Gitolite 管理リポジトリでcommand=
管理されている のキー)の両方を持つユーザーが絶対に必要であることがわかった場合は、強制できることがわかります。パラメータを介して特定の指定されたキーのみを提供するsshクライアント ( ssh_config(5)を参照)。keydir/
.ssh/authorized_keys
IdentitiesOnly
のような Git URL を介して Gitolite にアクセスできると仮定するとgit@server.example.com:projectA.git
、次のように各クライアントを構成します。
Host sparkleshare
User git
HostName server.example.com
IdentityFile ~/sparkelshare/pub_key
IdentitiesOnly yes
Host gitolite
User git
HostName server.example.com
IdentityFile ~/.ssh/id_rsa # or the user's normal, non-SparkleShare key
IdentitiesOnly yes
SparkleShare で、「自分のサーバー」をsparkleshare
(またはgit@sparkleshare
ユーザー部分が必要な場合) に設定し、「フォルダー名」をour-sparkleshare.git
(リポジトリへの「Gitolite パス」が何であれ、「完全なサーバー サイト パス」ではなく、アクセスがGitolite を経由し、その REPO_BASE 設定に関連するパスを想定しています)。
SparkleShare 以外のアクセスには、次のような Git URL を使用します。gitolite:projectA.git