
最近、gitolite をセットアップしました。これにより、ユーザーは ssh 経由で「gitolite」ユーザーとして git リポジトリにアクセスできるようになります。
今、それを LDAP に統合したいと思います。各ユーザーは LDAP に公開キーを持っており、ユーザーが「git」オブジェクトクラスを持っている場合は、ssh 経由で「gitolite」ユーザーにアクセスできます。
公開鍵を LDAP に保存できることはわかっていますが、objectClass に基づいて「gitosis」アカウントで認証を許可できるかどうかはわかりません。
編集:明確に言えば、オブジェクトクラスgitでは、ユーザー「foobar」はssh経由で「gitolite」としてログインできる。
答え1
著者ギトライト外部キーストアとグループメンバーシップ情報をサポートするいくつかの機能を追加しました。変更履歴LDAP 用。
外部キーストアを使用するにはsshd通常の.ssh/authorized_keys
ファイル(これは、sshd走るgl-auth-コマンドときギトライトユーザーがログインする)。
keydir
通常の authkey 生成 (リポジトリ内の に基づくものgitolite-admin
)をオフ
$GL_NO_SETUP_AUTHKEYS = 0;
にします.gitolite.rc
。- 定期的に(キーが変更されたとき、ユーザーが追加されたときなど):
- すべての SSH キーをキー ストアから便利な一時ディレクトリに抽出します (通常のリポジトリ ベースの にある場合と同じキー ファイルの名前を使用します
keydir
)。 - 走るgl-setup-authkeys持つためギトライトファイルのその部分を再構築します
authorized_keys
。
- すべての SSH キーをキー ストアから便利な一時ディレクトリに抽出します (通常のリポジトリ ベースの にある場合と同じキー ファイルの名前を使用します
見る導入したコミットメッセージgl-setup-authkeys著者自身の説明のため。
外部で定義されたユーザーグループの使用は、通常、別のプログラムを間に挟む必要があるため、少し複雑です。sshdそしてgl-auth-コマンド(グループメンバーシップは追加の引数として渡されますgl-auth-コマンド)。 見る「ユーザーグループとLDAP/類似ツール」。
答え2
少し変わったことを試したい場合は、.ssh/authorized_keys2 を名前付きパイプにして、LDAP を照会し、適切なフィルタリングを実行してから authorized_keys キーの内容を吐き出すスクリプト/プログラムを作成します。おそらく既に authorized_keys を使用しているので、authorized_keys2 をお勧めします。
スクリプトには注意が必要です (ブロック書き込みに注意し、新しいクエリをいつ実行するかを把握するなど) が、正しく実行すれば毎回正しい答えが得られます。