5.3.7.2. パスワードなしでの SSH の使用
ローカル認証用の
localauth Kerberos プラグインは、Kerberos プリンシパルが自動的にローカルの SSSD ユーザー名にマッピングされるようにします。この localauth を使うことで、信頼される AD ドメインの Windows ユーザーは Kerberos を使用したログイン時にパスワードが求められず、パスワードなしで SSH を使用できるようになります。
このプラグインは、複数のレルムや信頼にわたって信頼性のあるマッピングメカニズムを提供します。
sssd が Kerberos ライブラリーに接続してプリンシパルを POSIX ID にマッピングする際には、SSSD プラグインは IdM で定義された信頼合意に従ってこれらをマッピングします。
特定の状況では、SSH bastion ホストを使用してその他の Red Hat Enterprise Linux マシンにアクセスします。デフォルトで Kerberos を使用して bastion ホスト上の SSH に対する認証を行う場合、Kerberos チケットを転送して、Kerberos を使用して他の Red Hat Enterprise Linux ホストへ認証することはできません。このような転送認証を有効にするには、OK_AS_DELEGATE Kerberos フラグを bastions ホストプリンシパルに追加します。
ipa host-mod bastion_host.idm.example.com --ok-as-delegate=true
# ipa host-mod bastion_host.idm.example.com --ok-as-delegate=true
Red Hat Enterprise Linux 7.1 以降のシステムでの AD ユーザーの Kerberos 認証
Red Hat Enterprise Linux 7.1 以降のシステムでは、SSSD は
localauth Kerberos プラグインを自動設定します。
SSSD は、
user@AD.DOMAIN、ad.domain\user、および AD\user 形式でのユーザー名を許可します。
注記
localauth を使用するシステムでは、/etc/krb5.conf ファイルで auth_to_local オプションを設定したり、.k5login ファイルで Kerberos プリンシパルをリストアップする必要はありません。localauth プラグインにより、パスワードなしのログインに使用されていたこの設定は不要になります。
AD ユーザーの Kerberos 認証の手動設定
システムに
localauth プラグインがない場合は、ユーザーが適切な Kerberos チケットを取得した場合でも、SSH は Active Directory ドメインユーザーのユーザーパスワードを要求します。
このような状況で Active Directory ユーザーが認証に Kerberos を使用できるようにするには、
/etc/krb5.conf ファイルに auth_to_local オプションを設定するか、ユーザーのホームディレクトリーの .k5login ファイルにユーザーの Kerberos プリンシパルをリストアップします。
/etc/krb5.confの設定- 以下の手順では、Kerberos 設定ファイルにレルムマッピングを設定する方法を説明しています。
/etc/krb5.confファイルを開きます。realmsセクションで IdM レルムを名前で特定し、Kerberos プリンシパル名のマッピングを定義するためにauth_to_local行を 2 行追加します。- 1 つ目のルールでは、異なる Active Directory ユーザー名形式と特定の Active Directory ドメインをマッピングするルールを定義します。
- 他のルールで、標準の Unix ユーザー名に
DEFAULTの値を設定します。
以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - KDC サービスを再起動します。
systemctl restart krb5kdc.service
[root@server ~]# systemctl restart krb5kdc.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
auth_to_localオプションを使用して Kerberos 認証を設定する場合、SSH アクセスに使用するユーザー名は次の条件を満たす必要があることに注意してください。- ユーザー名が
ad_user@ad_domain形式になっていること。 - ドメイン名が小文字であること。
- ユーザー名の大文字/小文字が Active Directory 内のユーザー名と一致していること。たとえば、
userとUserは、大文字と小文字で異なるので、別のユーザー名とみなされます。
auth_to_localの設定は、krb5.conf(5) man ページを参照してください。 .k5loginの設定- 以下の手順では、システムがローカルユーザー名の Kerberos プリンシパル名を見つける設定を行います。
- ユーザーのホームディレクトリーに
.k5loginファイルを作成します。 - 作成したファイルにユーザーが使用する Kerberos プリンシパルを記載します。
認証しているユーザーが既存の Kerberos チケットのプリンシパルと一致する場合、ユーザーはパスワードを求められることなく、そのチケットを使用してログインできます。.k5login設定を使用して Kerberos 認証を設定する場合は、SSH アクセスに使用するユーザー名はad_user@ad_domainの形式を取る必要があります。.k5loginファイルの設定に関する詳細は、.k5login(5) の man ページを参照してください。
これらのいずれの設定を行うことで、AD ユーザーが Kerberos を使用してログインできるようになります。