私は以下を有効にしたいと考えています: AWS の Linux ec2 インスタンスで、現在ボックスにホームディレクトリがないユーザーの LDAP 認証を実行します。このタスクのために AWS で openLDAP が動作しています。
LDAP 認証が完了すると次のようになります。
- ユーザーのホームディレクトリが作成されます
- ユーザーの公開sshキーは
sshPublicKey
LDAPの属性から取得され、ローカルのsshPrivateKeyが一致する場合にのみログオンできます。
LDAP認証のやり方は知っていますまたは公開鍵の取得は を介して行いますldapsearch
が、両方を実行したいと考えています。
私が軽減しようとしているシナリオは、従業員が会社を辞めた場合です。openLDAP でその従業員のアカウントを無効にするだけで、マシン上にその従業員の公開鍵が存在していても、ldap 認証に失敗するため、その従業員はそれを使用できなくなります。
StackExchangesで探し回ったが、探しているものが見つからなかった。一番近いのは
https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap
https://serverfault.com/questions/579341/ssh キー認証と 2 要素認証の組み合わせ
答え1
まず、次の 2 つの理由により、承認されたキーはユーザーのホーム ディレクトリに保存しないでください。
- ユーザー自身がランダムな承認キーを追加することは許可されません。
- 最初のログイン時にホーム ディレクトリがまだ存在しない場合は、承認されたキーがすでに存在しているはずです。
むしろ設定すべき承認済みキーファイルこのようにsshdヘルパー同期スクリプトを使用して、キーを配置するロックダウンされたディレクトリから承認されたキーを読み取ります。
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
これのバリエーションとして、承認されたキーコマンド承認されたキーの動的な取得をトリガーします。ログインする必要があるときに、ネットワークがダウンしていたり、システムにアクセスできない可能性があることに注意してください。
従業員が退職した場合は、承認されたキーも削除してください。
キーとパスワードベースの認証を強制したい場合は、次のように設定できます。認証方法このような:
AuthenticationMethods publickey,password
区切り文字としてスペースではなくカンマが使用されていることに注意してください。
(すべての詳細を自分で処理したくない場合は、すぐに使用できるソリューションを設定することもできます。無料IPAとsssdNSS/PAMクライアントとして、または私のÆ-DIRとホストNSS/PAM クライアントとして使用されます。