私は、db(MongoDB)に格納されている公開鍵を使用してユーザーを認証する方法を探しています。通常、同様の質問の結果、dbに対して認証を行うOpenSSH( https://github.com/wuputahllc/openssh-for-git )のパッチバージョンをインストールするよう提案されました(GitHubはパッチバージョンを使用しています) OpenSSHの)。
MySQLを介して認証するPAMモジュールがあることを確認しましたが、ユーザー名/パスワード認証を前提としています。サーバーに対して公開鍵を使用して認証するために、ある種のPAMモジュールを使用できるかどうか疑問に思っていました。
編集:すべてのユーザーが「git」ユーザー名を介して接続するgitサーバーに必要です。ユーザーごとに特定のユーザー名はありません。
SSH公開鍵認証はPAMを介して実装されていません。実際にはbypasses PAM auth
スタック(ただしauth
のみ)であり、多くの管理者が見落としているものです。
AuthorizedKeyCommand
をサポートするバージョンを除外すると(Florinの回答で述べたように)、SSH公開キー認証を拡張する唯一の方法は、デーモン(公開キールックアップ)またはクライアント(秘密キールックアップ)にパッチを適用することです。
PAMを介して認証オプションを拡張する方法はたくさんありますが、SSH公開鍵認証の動作を変更することはその1つではありません。
AuthorizedKeysCommand
が必要です。新しいバージョンのOpenSSHが必要です。MongoDBデータベースからキーを取得するラッパーコマンドを記述する必要がありますが、OpenSSHにパッチを適用する必要はありません。
AuthorizedKeysCommand に関する詳細のリンク。