Kerberos サポートのある OpenSSH の使用

いくつかの初期セットアップでは、OpenSSH を Kerberos と併用する必要があります。

以下の手順には、Kerberos サポートが備わった OpenSSH を使用するのに必要な初期セットアップの情報が含まれています。

  1. ご使用の OpenSSH クライアントおよびサーバーに、/etc/krb5.conf ファイルが存在していなければなりません。 このファイルは Kerberos に、使用する KDC、それぞれのチケットに与えるライフタイムなどの情報を提供します。 以下は、krb5.conf ファイルの一例です。
    
    [libdefaults]
    ticket_lifetime = 600
    default_realm = OPENSSH.AUSTIN.XYZ.COM
    default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
    default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc
     
    [realms]
    OPENSSH.AUSTIN.xyz.COM = {
        kdc = kerberos.austin.xyz.com:88
        kdc = kerberos-1.austin.xyz.com:88
        kdc = kerberos-2.austin.xyz.com:88
        admin_server = kerberos.austin.xyz.com:749
        default_domain = austin.xyz.com
    }
     
    [domain_realm]
        .austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM
        kdc.austin.xyz.com = OPENSSH.AUSTIN.XYZ.COM
    
  2. また、各クライアント・マシンの /etc/services ファイルに、以下の Kerberos サービスを追加する必要があります。
    kerberos      88/udp    kdc    # Kerberos V5 KDC
    kerberos      88/tcp    kdc    # Kerberos V5 KDC
    kerberos-adm  749/tcp          # Kerberos 5 admin/changepw
    kerberos-adm  749/udp          # Kerberos 5 admin/changepw
    krb5_prop     754/tcp          # Kerberos worker 
                                   #  propagation
    
  3. KDC がユーザー情報を保管するレジストリーとして LDAP を使用している場合は、 LDAP 認証ロード・モジュール、および Kerberos の資料を参照してください。 さらに、以下のことが行われていることを確認してください。
    • KDC が LDAP クライアントを実行している。 secldapclntd コマンドで LDAP クライアント・デーモンを始動できる。
    • LDAP サーバーは slapd LDAP サーバー・デーモンを実行しています。
  4. OpenSSH サーバーで、/etc/ssh/sshd_config ファイルを編集して以下の行を入れます。
    KerberosAuthentication yes
    KerberosTicketCleanup yes
    GSSAPIAuthentication yes
    GSSAPICleanupCredentials yes
    UseDNS yes
    UseDNSYes に設定されている場合は、ssh サーバーは、ホストの逆ルックアップを実行して接続クライアントの名前を見つけます。 これは、ホスト・ベース認証を使用する場合、または最後に表示するログイン情報を IP アドレスではなくホスト名にする場合に必要です。
    注: DNS サーバーに到達できないため、リバース・ネーム・ルックアップの実行中に一部の ssh セッションが停止します。 この場合、UseDNSnoに設定することで DNS ルックアップをスキップできます。 UseDNS/etc/ssh/sshd_config ファイルに明示的に設定されていない場合、デフォルト値は UseDNS yesです。
  5. SSH サーバーで、startsrc -g ssh コマンドを実行して ssh サーバー・デーモンを始動します。
  6. SSH クライアント・マシンで、kinit コマンドを実行して初期資格情報 (TGT) を取得します。 TGT を受け取ったかどうかを確認するには、klist コマンドを実行します。 このコマンドは、そのユーザーに属するすべての資格情報を表示します。
  7. ssh username@servername コマンドを実行して、サーバーに接続します。
  8. Kerberos が、ユーザーを認証できるよう正しく構成されていると、パスワードの入力を促すプロンプトは表示されず、ユーザーは SSH サーバーに自動的にログインします。