2017-01-28 9 views
0

私はUsernamesとPublic SSH Keysを持つPHPアプリケーションを持っています。これらのアカウントをopensshのユーザーバックエンドとして使用したいと思います。openssh用のpam_execを使用するアカウントの外部スクリプト

私はpam_execとPHP/Bashスクリプトを使う必要があると思います。私はCLIで実行できるphpスクリプトを書いています(shebangはPHP実行ファイルのenvを設定します)。環境変数にアクセスする代わりに、これをbashスクリプトでラップする必要がある場合、私はそれを行うことができます。このスクリプトは、現在、そのようにその最初にして唯一のパラメータとしてユーザー名を取りますされていない場合、スクリプトが成功した場合は0(ユーザーが存在する)または1番出口を出ます

/opt/scripts/my-auth-script.php user_to_look_for 

。現在のところ、OKまたはFailedと表示されますが、簡単に無効にすることができます。

私の質問は、実際のホストシステムでユーザーアカウントを調べる前に、pam_execでスクリプトを呼び出してユーザーアカウントを探す方法です。

答えて

0

私はそれが働いている。これを行う方法は、opensshのAuthorizedKeysCommandとAuthorisedKeyUserの設定をsshd_configに設定することです。 githubとgithubが顧客の間で共有する単一のログインユーザを介してサービスとしてsshを提供する理由は、ログインするシステムによって解決可能でなければならないということです。つまり、ローカルに存在するか、ユーザdb LDAPなどのリモートソースに接続する必要があります.LDAPはアプリケーションに統合する必要があります。

これを回避する方法は、AuthorizedKeyCommandがユーザー名の%u、この場合はキーの%k、またはキーのsha256指紋の%fを取ることができるということです。そのスクリプトは、指定された汎用ユーザー名を無視して、キーまたは指紋の一致をデータベースでチェックします。見つけたら、その鍵と認証に成功したユーザーがいます。そうでなければ私たちはいない。

関連する問題