Gitoliteは、ssh強制コマンドを使用して認証を行います。gitoliteリポジトリにアクセスできるすべてのユーザーは、gitoliteがインストールされている場所でログインします。フックはkeydirで新しいキーを取得し、強制コマンドを使用するように構成された承認済みキーファイルに追加します。
ユーザーはパラメーター付きのgitoliteシェルを使用する必要があり、そのパラメーターはユーザー名です。関連するフックの次の部分は、ファイルパスを取得してユーザーに割り当て/
、名前にが含まれるすべてのディレクトリとファイルを削除します。残っているものは、それが終わる限りユーザー名になり、少なくとも1つの追加文字がある限り、サフィックスの前にあるシングルサインオン.pub
は無視されます。@
.pub
my $user = $f;
$user =~ s(.*/)(); # foo/bar/baz.pub -> baz.pub
$user =~ s/(\@[^.]+)?\.pub$//; # baz.pub, baz@home.pub -> baz
これにより、次のような機能が提供されます。
keydir
|--host1
|--dave.pub
|--david.pub
|--host2
|--dave.pub
ディレクトリは任意ですが、組織的な目的で、ホストを使用して構造を提供します。最終的に2人のdave
ユーザーと1人のユーザーになりdavid
ます。
私は次のような構成を使用します:
keydir
|--steve
|--steve@example.com@laptop.pub
|--steve@example.com@desktop.pub
|--services
|--jenkins
|--jenkins@master-buildhost.pub
|--jenkins@slave-buildhost.pub
|--redmine
|--redmine@dev-server.pub
|--jira
|--jira@dev-alias.pub
繰り返しますが、ディレクトリ構造は重要ではありません。これにより、ユーザー、、、、steve@example.com
およびが得られます。ユーザーには、ユーザーと同様に2つのキーがあります。複数のユーザーがいる場合は、おそらく、steveキーディレクトリを含むusersサブディレクトリがあります。jenkins
redmine
jira
steve@example.com
jenkins