Red Hat Training

A Red Hat training course is available for RHEL 8

112.2. スマートカードで認証されたユーザーが、再度認証を要求されることなくリモートホストに SSH 接続できるようにするための Web コンソールの設定

RHEL の Web コンソールでユーザーアカウントにログインした後、Identity Management (IdM) システム管理者として、SSH プロトコルを使用してリモートマシンに接続する必要がある場合があります。制約付き委任 機能を使用すると、再度認証を求められることなく SSH を使用することができます。

この手順では、制約付き委任を使用するように Web コンソールを設定する方法について説明します。以下の例では、Web コンソールセッションは myhost.idm.example.com ホストで実行され、認証されたユーザーの代わりに SSH を使用して remote.idm.example.com ホストにアクセスするように設定されています。

前提条件

  • IdM admin Ticket-Granting Ticket (TGT) を取得している
  • remote.idm.example.com への root アクセス権がある
  • Web コンソールサービスが IdM に存在する
  • remote.idm.example.com ホストが IdM に存在する
  • Web コンソールは、ユーザーセッションに S4U2Proxy Kerberos チケットを作成している。これを確認するために、IdM ユーザーで Web コンソールにログインし、Terminal ページを開き、以下を入力します。

    $ klist
    Ticket cache: FILE:/run/user/1894000001/cockpit-session-3692.ccache
    Default principal: user@IDM.EXAMPLE.COM
    
    Valid starting     Expires            Service principal
    07/30/21 09:19:06 07/31/21 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
    07/30/21 09:19:06  07/31/21 09:19:06  krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
            for client HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM

手順

  1. 委任ルールでアクセス可能な対象ホストのリストを作成します。

    1. サービス委任ターゲットを作成します。

      $ ipa servicedelegationtarget-add cockpit-target
    2. 委任対象に対象ホストを追加します。

      $ ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/remote.idm.example.com@IDM.EXAMPLE.COM
  2. サービス委任ルールを作成し、HTTP サービスの Kerberos プリンシパルを追加することで、cockpit セッションが対象ホストのリストにアクセスできるようにします。

    1. サービス委任ルールを作成します。

      $ ipa servicedelegationrule-add cockpit-delegation
    2. Web コンソールクライアントを委任ルールに追加します。

      $ ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
    3. 委任対象を委任ルールに追加します。

      $ ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
  3. remote.idm.example.com ホストで Kerberos 認証を有効にします。

    1. root として remote.idm.example.comSSH 接続します。
    2. /etc/ssh/sshd_config ファイルを開いて編集します。
    3. GSSAPIAuthentication no 行のコメントを外し、GSSAPIAuthentication yes に置き換えて、GSSAPIAuthentication を有効にします。
  4. 上記の変更がすぐに有効になるように、remote.idm.example.comSSH サービスを再起動します。

    $ systemctl try-restart sshd.service