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 レルムを特定し、2 つの auth_to_local 行を追加して Kerberos プリンシパル名のマッピングを定義します。
    • 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 を使用してログインできるようになります。