web-dev-qa-db-ja.com

公開鍵を使用したOpenSSHおよびPAM認証

私は、db(MongoDB)に格納されている公開鍵を使用してユーザーを認証する方法を探しています。通常、同様の質問の結果、dbに対して認証を行うOpenSSH( https://github.com/wuputahllc/openssh-for-git )のパッチバージョンをインストールするよう提案されました(GitHubはパッチバージョンを使用しています) OpenSSHの)。

MySQLを介して認証するPAMモジュールがあることを確認しましたが、ユーザー名/パスワード認証を前提としています。サーバーに対して公開鍵を使用して認証するために、ある種のPAMモジュールを使用できるかどうか疑問に思っていました。

編集:すべてのユーザーが「git」ユーザー名を介して接続するgitサーバーに必要です。ユーザーごとに特定のユーザー名はありません。

6
Gilad Novik

SSH公開鍵認証はPAMを介して実装されていません。実際にはbypasses PAM authスタック(ただしauthのみ)であり、多くの管理者が見落としているものです。

AuthorizedKeyCommandをサポートするバージョンを除外すると(Florinの回答で述べたように)、SSH公開キー認証を拡張する唯一の方法は、デーモン(公開キールックアップ)またはクライアント(秘密キールックアップ)にパッチを適用することです。

PAMを介して認証オプションを拡張する方法はたくさんありますが、SSH公開鍵認証の動作を変更することはその1つではありません。

6
Andrew B

AuthorizedKeysCommandが必要です。新しいバージョンのOpenSSHが必要です。MongoDBデータベースからキーを取得するラッパーコマンドを記述する必要がありますが、OpenSSHにパッチを適用する必要はありません。

AuthorizedKeysCommand に関する詳細のリンク。

6