Red Hat Training

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

22.4. ユーザーの公開 SSH キーの管理

Identity Management では、公開 SSH 鍵をユーザーエントリーにアップロードできます。適切な公開 SSH 鍵にアクセスできるユーザーは、ssh を使用して Kerberos 認証情報なしに IdM マシンにログインできます。pam_krb5 が正しく設定されているか、SSSD が IdM サーバーの ID プロバイダーとして使用されている場合には、ログイン後に Kerberos ticket-granting ticket (TGT) を受け取ります。詳細は「Kerberos チケットの自動取得」を参照してください。
SSH 秘密鍵ファイルを利用できないマシンからログインしている場合には、Kerberos 認証情報を提示した認証も可能である点に注意してください。

SSH 鍵の自動キャッシュおよび取得

IdM サーバーまたはクライアントのインストール中に、SSSD は自動的に ユーザーとホストの SSH 鍵をキャッシュ、取得するようい設定されます。これにより、IdM は SSH 鍵の集約された汎用リポジトリーとしての役割を果たすことができます。
サーバーまたはクライアントがインストール時に設定されていない場合には、マシンの SSSD を手動で設定してください。システムレベルの認証ガイド を参照してください。SSSD での SSH 鍵のキャッシュには、ローカルマシンでの管理者権限が必要だる点に注意してください。

SSH 鍵の形式要件

IdM では、以下の 2 つの SSH 鍵の形式を使用できます。
OpenSSH スタイルの鍵
この形式に関する詳細は RFC 4716 を参照してください。
Raw RFC 4253 スタイルの鍵
この形式に関する詳細は RFC 4253 を参照してください
IdM は自動的に RFC 4253 スタイルの鍵を OpenSSH スタイルの鍵に自動的に変換してから、IdM LDAP サーバーに保存する点に注意してください。
id_rsa.pub などの鍵ファイルは、鍵タイプ、鍵、追加のコメントまたは識別子の 3 つの部分で公正されます。以下の例では、鍵のタイプは RSA で、コメントにより鍵と client.example.com ホスト名とを関連付けます。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMM4xPu54Kf2dx7C4Ta2F7vnIzuL1i6P21TTKniSkjFuA+r
qW06588e7v14Im4VejwnNk352gp49A62qSVOzp8IKA9xdtyRmHYCTUvmkcyspZvFRI713zfRKQVFyJOqHmW/m
dCmak7QBxYou2ELSPhH3pe8MYTQIulKDSu5Zbsrqedg1VGkSJxf7mDnCSPNWWzAY9AFB9Lmd2m2xZmNgVAQEQ
nZXNMaIlroLD/51rmMSkJGHGb1O68kEq9Z client.example.com
鍵を IDM にアップロードする場合には、3 つの部分すべてをアップロードするか、鍵自体のみをアップロードできます。鍵だけをアップロードする場合には、IdM はアップロードされた鍵をもとに、自動的に RSA または DSA など鍵タイプを自動的に識別します。

22.4.1. SSH 鍵の生成

OpenSSH ssh-keygen ユーティリティーを使用して SSH 鍵を生成できます。このユーティリティーは、公開鍵の場所に関する情報を表示します。以下に例を示します。
$ ssh-keygen -t rsa -C user@example.com
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GAUIDVVEgly7rs1lTWP6oguHz8BKvyZkpqCqVSsmi7c user@example.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|     + .         |
|    + =   .      |
|     =   +       |
|    . E S..      |
|   .    . .o     |
|    . .  . oo.   |
|   . o .  +.+o   |
|    o  .o..o+o   |
+-----------------+
ユーザーの SSH 鍵をアップロードするには、表示されたファイルに保存されている公開鍵の文字列を使用します。

22.4.2. ユーザーの SSH 鍵のアップロード

22.4.2.1. Web UI: ユーザーの SSH 鍵のアップロード

  1. IdentityUsers を選択します。
  2. 編集するユーザー名をクリックします。
  3. Account Settings エリアの Settings タブで、SSH public keys: Add をクリックしてください。
    アカウント設定の SSH 公開鍵

    図22.9 アカウント設定の SSH 公開鍵

  4. Base 64 でエンコードされた公開鍵の文字列を貼り付け、Set をクリックします。
    公開鍵の貼り付け

    図22.10 公開鍵の貼り付け

  5. ページ上部の Save をクリックします。

22.4.2.2. コマンドライン: ユーザーの SSH 鍵のアップロード

ipa user-mod コマンドを使用して、--sshpubkey オプションを指定して Base 64 でエンコードされた公開鍵の文字列を渡します。
たとえば、鍵のタイプ、鍵自体、ホスト名の識別子をアップロードするには以下を実行します。
$ ipa user-mod user --sshpubkey="ssh-rsa AAAAB3Nza...SNc5dv== client.example.com"
複数の鍵をアップロードするには --sshpubkey を複数回実行します。たとえば、SSH 鍵を 2 つアップロードするには以下を実行します。
--sshpubkey="AAAAB3Nza...SNc5dv==" --sshpubkey="RjlzYQo...ZEt0TAo="

注記

鍵の文字列をコマンドラインに手動で貼り付ける代わりに、コマンドのリダイレクトを使用して、鍵を含むファイルを参照することができます。以下の例を示します。
$ ipa user-mod user --sshpubkey="$(cat ~/.ssh/id_rsa.pub)" --sshpubkey="$(cat ~/.ssh/id_rsa2.pub)"

22.4.3. ユーザーキーの削除

SSH 鍵を削除するには以下を実行します。

22.4.3.1. Web UI: ユーザーの SSH 鍵の削除

  1. IdentityUsers を選択します。
  2. 編集するユーザー名をクリックします。
  3. Account Settings エリアの Settings タブで、削除する鍵の横にある Delete をクリックします。
    ユーザーの SSH 公開鍵の削除

    図22.11 ユーザーの SSH 公開鍵の削除

  4. ページ上部の Save をクリックします。

22.4.3.2. コマンドライン: ユーザーの SSH 鍵の削除

ユーザーアカウントに割り当てられた SSH 鍵を削除するには、鍵を指定せずに、ipa user-mod コマンドに --sshpubkey オプションを追加します。
$ ipa user-mod user --sshpubkey=
特定の SSH 鍵を削除する場合には --sshpubkey オプションを使用して、保持する鍵を指定します。