ユーザーがLDAPと保存された公開鍵を介して特定のユーザーにSSH接続できるようにする

ユーザーがLDAPと保存された公開鍵を介して特定のユーザーにSSH接続できるようにする

最近、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-コマンドときギトライトユーザーがログインする)。

  1. keydir通常の authkey 生成 (リポジトリ内の に基づくものgitolite-admin)をオフ
    $GL_NO_SETUP_AUTHKEYS = 0;にします.gitolite.rc
  2. 定期的に(キーが変更されたとき、ユーザーが追加されたときなど):
    1. すべての SSH キーをキー ストアから便利な一時ディレクトリに抽出します (通常のリポジトリ ベースの にある場合と同じキー ファイルの名前を使用しますkeydir)。
    2. 走るgl-setup-authkeys持つためギトライトファイルのその部分を再構築しますauthorized_keys

見る導入したコミットメッセージgl-setup-authkeys著者自身の説明のため。

外部で定義されたユーザーグループの使用は、通常、別のプログラムを間に挟む必要があるため、少し複雑です。sshdそしてgl-auth-コマンド(グループメンバーシップは追加の引数として渡されますgl-auth-コマンド)。 見る「ユーザーグループとLDAP/類似ツール」

答え2

少し変わったことを試したい場合は、.ssh/authorized_keys2 を名前付きパイプにして、LDAP を照会し、適切なフィルタリングを実行してから authorized_keys キーの内容を吐き出すスクリプト/プログラムを作成します。おそらく既に authorized_keys を使用しているので、authorized_keys2 をお勧めします。

スクリプトには注意が必要です (ブロック書き込みに注意し、新しいクエリをいつ実行するかを把握するなど) が、正しく実行すれば毎回正しい答えが得られます。

関連情報