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
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
の値を設定します。
以下に例を示します。[realms] IDM = { .... auth_to_local = RULE:[1:$1@$0](^.*@ADDOMAIN$)s/@ADDOMAIN/@addomain/ auth_to_local = DEFAULT }
- KDC サービスを再起動します。
[root@server ~]# systemctl restart krb5kdc.service
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 を使用してログインできるようになります。