Red Hat Training

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

22.5. ユーザーの公開 SSH 鍵の管理

Identity Management を使用すると、公開 SSH キーをユーザーエントリーにアップロードできます。対応する SSH 鍵にアクセスできるユーザーは、ssh を使用して Kerberos 認証情報を使用せずに IdM マシン にログインすることができます。Pam_krb5 が正しく設定されている場合や、SSSD が IdM サーバーのアイデンティティープロバイダーとして使用されている場合は、ユーザーはログイン後に Kerberos チケット保証チケット (TGT) も受け取ります。詳細は、「Kerberos チケットの自動取得」 を参照してください。
SSH 秘密鍵ファイルが利用できない場合でも、ユーザーは Kerberos 認証情報を提供して認証できることに注意してください。

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

IdM サーバーまたはクライアントのインストール時に、SSSD は、ユーザーおよびホストの SSH 鍵をキャッシュし、取得するようにマシンに自動的に設定されます。これにより、IdM は SSH 鍵の汎用および集中化されたリポジトリーとして機能できます。
サーバーまたはクライアントがインストール時に設定されていない場合は、マシンで SSSD を手動で設定できます。その方法は、「OpenSSH サービスのキャッシュを提供するように SSSD を設定」 を参照してください。SSSD による SSH 鍵のキャッシュには、ローカルマシンでの管理権限が必要です。

SSH キーの形式要件

IdM では、以下の 2 つの SSH 鍵形式を使用できます。
OpenSSH-style key
この形式に関する詳細は、RFC 4716 を参照してください。
Raw RFC 4253-style key
この形式に関する詳細は、RFC 4253 を参照してください。
IdM は、IdM の LDAP サーバーに保存する前に、RFC 4253 形式の鍵を OpenSSH スタイルの鍵に自動的に変換することに注意してください。
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.5.1. SSH キーの生成

SSH キーは、OpenSSH の ssh-keygen ユーティリティーを使用して生成できます。このユーティリティーは、公開鍵の場所に関する情報を表示します。以下に例を示します。
$ 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.5.2. ユーザーの SSH 鍵のアップロード

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

  1. IdentityUsers を選択します。
  2. 編集するユーザー名をクリックします。
  3. Account Settings エリアの Settings タブで、SSH public keys: Add をクリックします。

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

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

    図22.10 公開鍵での貼り付け

    公開鍵での貼り付け
  5. ページ上部にある Save をクリックします。

22.5.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.5.3. ユーザーキーの削除

SSH キーを削除するには、以下を実行します。

22.5.3.1. Web UI: ユーザーの SSH キーの削除

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

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

    ユーザー SSH 公開鍵の削除
  4. ページ上部にある Save をクリックします。

22.5.3.2. コマンドライン: ユーザーの SSH キーの削除

ユーザーアカウントに割り当てられたすべての SSH キーを削除するには、キーを指定せずに --sshpubkey オプションを ipa user-mod コマンドに追加します。
$ ipa user-mod user --sshpubkey=
特定の SSH キーまたはキーのみを削除する場合は、--sshpubkey オプションを使用して、保持するキーまたはキーを指定します。
注記
このコマンドは、キャッシュから SSH 鍵をすぐに削除しません。デフォルトのキャッシュタイムアウト値 (entry_cache_timeout = 5400) では、キーが 1 時間半の間キャッシュに残ります。