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 鍵形式を使用できます。
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 鍵のアップロード
を選択します。 - 編集するユーザー名をクリックします。
- Account Settings エリアの Settings タブで、SSH public keys: Add をクリックします。
図22.9 アカウント設定の SSH 公開鍵
- Base 64 でエンコードされた公開鍵文字列に貼り付け、をクリックします。
図22.10 公開鍵での貼り付け
- ページ上部にある 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 キーを削除するには、以下を実行します。
- Web UI の使用については、「Web UI: ユーザーの SSH キーの削除」を参照してください。
- コマンドラインの使用方法については、「コマンドライン: ユーザーの SSH キーの削除」を参照してください。
22.5.3.1. Web UI: ユーザーの SSH キーの削除
を選択します。 - 編集するユーザー名をクリックします。
- Account Settings エリアの Settings タブで、削除するキーの横にある Delete をクリックします。
図22.11 ユーザー SSH 公開鍵の削除
- ページ上部にある Save をクリックします。
22.5.3.2. コマンドライン: ユーザーの SSH キーの削除
ユーザーアカウントに割り当てられたすべての SSH キーを削除するには、キーを指定せずに
--sshpubkey
オプションを ipa user-mod コマンドに追加します。
$ ipa user-mod user --sshpubkey=
特定の SSH キーまたはキーのみを削除する場合は、
--sshpubkey
オプションを使用して、保持するキーまたはキーを指定します。
注記
このコマンドは、キャッシュから SSH 鍵をすぐに削除しません。デフォルトのキャッシュタイムアウト値 (
entry_cache_timeout = 5400
) では、キーが 1 時間半の間キャッシュに残ります。