1

ジトライトを取り付けました。私はそれをうまく管理できます。いくつかの新しいリポジトリといくつかの公開鍵を追加しました。「 」としてインストールgit@domain.comされ、ユーザーのリポジトリが として追加されましたrepo.git

アクセスする必要git@domain.com:repo.gitがありますか、それとも URL でユーザーを示す方法はありますか?
おそらく、user@domain.com:repo.gitまたはgit.domain.com/user/repo.gitたとえばのようなものですか?

4

1 に答える 1

1

いいえ、それはgit@domain.comユーザーが常に同じであるためです。つまり、サーバーに gitolite をインストールして管理するために使用している git アカウントです。

実際のユーザーは、ssh 呼び出しを行うときに使用している公開鍵から推測されます。ユーザーのログインにちなんで名付けられた
公開鍵を表す user.pub ファイルにその鍵を登録した場合、gitolite はあなたを識別することができます。

詳細については、「gitolite が ssh を使用する方法」を参照してください。

ファイルを調べると、次のauthorized_keysようなエントリが表示されます (もちろん、両端を切り落としました。かなり長い行です)。

command="[path]/gitolite-shell sitaram",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA18S2t...
command="[path]/gitolite-shell usertwo",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXtCT...

まず、このファイル内のどの公開鍵が着信ログインと一致するかを調べます。
一致が見つかると、その行に指定されたコマンドが実行されます。たとえば、ログインすると実行されます[path]/gitolite-shell sitaram
したがって、最初に注意すべきことは、そのようなユーザーは「シェル アクセス」を取得しないということです。これは良いことです。

gitolite-shell制御を取得すると、最初の引数 (" sitaram"、" usertwo" など) を見て、あなたが誰であるかを判断します。次に、SSH_ORIGINAL_COMMAND変数を調べて、アクセスするリポジトリと、読み取りまたは書き込みのどちらを行っているかを調べます。

これで、ユーザー、リポジトリ、およびアクセスが要求された (読み取り/書き込み) ため、gitolite はその構成ファイルを調べて、要求を許可または拒否します。

于 2012-10-03T05:52:58.413 に答える