Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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.DOMAINad.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 設定ファイルにレルムマッピングを設定する方法を説明しています。
  1. /etc/krb5.conf ファイルを開きます。
  2. 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
    }
  3. KDC サービスを再起動します。
    [root@server ~]# systemctl restart krb5kdc.service
auth_to_local オプションを使用して Kerberos 認証を設定する場合、SSH アクセスに使用するユーザー名は次の条件を満たす必要があることに注意してください。
  • ユーザー名が ad_user@ad_domain 形式になっていること。
  • ドメイン名が小文字であること。
  • ユーザー名の大文字/小文字が Active Directory 内のユーザー名と一致していること。たとえば、userUser は、大文字と小文字で異なるので、別のユーザー名とみなされます。
auth_to_local の設定は、krb5.conf(5) man ページを参照してください。
.k5login の設定
以下の手順では、システムがローカルユーザー名の Kerberos プリンシパル名を見つける設定を行います。
  1. ユーザーのホームディレクトリーに .k5login ファイルを作成します。
  2. 作成したファイルにユーザーが使用する Kerberos プリンシパルを記載します。
認証しているユーザーが既存の Kerberos チケットのプリンシパルと一致する場合、ユーザーはパスワードを求められることなく、そのチケットを使用してログインできます。
.k5login 設定を使用して Kerberos 認証を設定する場合は、SSH アクセスに使用するユーザー名は ad_user@ad_domain の形式を取る必要があります。
.k5login ファイルの設定に関する詳細は、.k5login(5) の man ページを参照してください。
これらのいずれの設定を行うことで、AD ユーザーが Kerberos を使用してログインできるようになります。