122.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
手順
委任ルールでアクセス可能な対象ホストのリストを作成します。
サービス委任ターゲットを作成します。
$ ipa servicedelegationtarget-add cockpit-target
委任対象に対象ホストを追加します。
$ ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/remote.idm.example.com@IDM.EXAMPLE.COM
サービス委任ルールを作成し、
HTTP
サービスの Kerberos プリンシパルを追加することで、cockpit
セッションが対象ホストのリストにアクセスできるようにします。サービス委任ルールを作成します。
$ ipa servicedelegationrule-add cockpit-delegation
Web コンソールクライアントを委任ルールに追加します。
$ ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
委任対象を委任ルールに追加します。
$ ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
remote.idm.example.com ホストで Kerberos 認証を有効にします。
-
root
として remote.idm.example.com にSSH
接続します。 -
/etc/ssh/sshd_config
ファイルを開いて編集します。 -
GSSAPIAuthentication no
行のコメントを外し、GSSAPIAuthentication yes
に置き換えて、GSSAPIAuthentication
を有効にします。
-
上記の変更がすぐに有効になるように、remote.idm.example.com の
SSH
サービスを再起動します。$ systemctl try-restart sshd.service