当社は現在、AD認証をLinuxサーバーに統合しています。私はPBISO(Power Broker Identity Service)を使用してこの部分を実行できました。ユーザーはADアカウントを使用してログインできます。
もう一歩進んで、私の使命は公開鍵を介してパスワードのないログインを有効にすることです。ここで問題が発生します。これを達成するには、各ユーザーの公開鍵を ~/.ssh/authorized_keys に貼り付ける必要があります。しかし、これは実用的ではなく、非常に非効率的です。これを自動化する方法を見つける必要があります。これはスクリプトで書くことができると言うかもしれませんが、私はこれがより深いウサギの洞窟であると信じています。 ADホームディレクトリは手動で作成できません。
私が考えたバリエーションの1つは、ユーザーを/home/group1/などのグループディレクトリにリダイレクトすることです。だから私はこのローカルユーザーgroup1を作成し、それをテストするために/ home / group1 / .ssh / authorized_keysにaduser pubkeyを追加しました。 aduserでSSHを実行すると、キーを使用するのではなくパスワードを要求されます。 group1ローカルユーザーとしてsshする場合にのみ機能します。
質問:公開鍵をローカルユーザー〜/.ssh/authorized_keysに保存して他のユーザーとしてログインできますか?これが可能であれば、どのように機能させることができますか?
私の目標は、ユーザーがADアカウントを使用してログインし、/home/group1/にリダイレクトし、パスワードのない認証にAuthorized_keysを使用することです。
どんな意見でも感謝します。ありがとうございます。
ベストアンサー1
@PhilipCoulingのコメントのおかげで、私の仕事に対する解決策を見つけました。
公開鍵を取得する検索スクリプトを実行するために、/etc/ssh/sshd_configでAuthorizedKeysCommandとAuthorizedKeysCommandUserを有効にしました。
AuthorizedKeysCommand /sshkey-check.sh
AuthorizedKeysCommandUser root
このスクリプトでは、ハッシュ配列にユーザーキーを追加し、認証のためにそのキーをエコーします。
つまり、ssh domain\aduser1@centosbox です。
#!/bin/bash
declare -A keys
# remove the domain name and the backslash from the username entered, i.e. domain\
user=$(echo $1 | sed 's@.*\\@@')
keys[aduser1]="public key"
keys[aduser2]="public key"
keys[aduser3]="public key"
echo ${keys[${user}]}