SSH PKI認証

SSH PKI認証

当社は現在、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}]}

おすすめ記事