50.4. ホストの SSH 公開鍵の管理
OpenSSH は公開鍵を使用してホストを認証します。あるマシンが別のマシンにアクセスを試みてキーのペアを提示します。ホストの初回認証時には、ターゲットマシンの管理者は、この要求を手動で認証する必要があります。次に、マシンはホストの公開鍵を known_hosts
ファイルに保存します。リモートのマシンがターゲットマシンにアクセスを再度試みると、ターゲットマシンは known_hosts
ファイルをチェックして、認証済みホストに自動的にアクセスを許可します。
50.4.1. IdM Web UI を使用したホストの SSH 鍵のアップロード
Identity Management を使用すると、SSH 公開鍵をホストエントリーにアップロードできます。OpenSSH は公開鍵を使用してホストを認証します。
前提条件
- IdM Web UI、またはユーザー管理者ロールを管理する管理者権限
手順
ホストの鍵は
~/.ssh/known_hosts
ファイルから取得できます。以下に例を示します。server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xlLy6FOhzwpXFGIyxvXZ52+siHBHbbqGL5+14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHwrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o+ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S+FhkWUTTiOXJjUDYRLlwM273FfWhzHK+SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAdF8iYNHBTXNfFurGogXwRDjQ==
ホスト鍵を生成することもできます。SSH 鍵の生成 を参照してください。
公開鍵をキーファイルからコピーします。完全な鍵エントリーは、
hostname,IP type key==
の形式です。key==
のみが必要ですが、エントリー全体を保存することもできます。エントリーの全要素を使用するには、エントリーを再編成して、順番がtype key== [host name,IP]
になるように設定します。cat /home/user/.ssh/host_keys.pub ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
- IdM Web UI にログインします。
-
Identity > Hosts
タブに移動します。 - 編集するホスト名をクリックします。
-
Host Settings
セクションで、SSH 公開鍵のAdd
ボタンをクリックします。 -
ホストの公開鍵を
SSH public key
フィールドに貼り付けます。 -
Set
をクリックします。 -
IdM Web UI ウィンドウの上部にある
Save
をクリックします。
検証
-
Hosts Settings
セクションで、鍵がSSH public keys
の下にリストされていることを確認します。
50.4.2. IdM CLI を使用したホストの SSH 鍵のアップロード
Identity Management を使用すると、SSH 公開鍵をホストエントリーにアップロードできます。OpenSSH は公開鍵を使用してホストを認証します。ホスト SSH 鍵は、host-add
を使用してホストを作成するときか、エントリーを後で修正するときに、IdM のホストエントリーに追加されます。
インストールスクリプトで SSH サービスが明示的に無効にされなければ、ipa-client-install
コマンドで RSA と DSA ホスト鍵が作成されます。
前提条件
- IdM、またはユーザー管理者ロールを管理する管理者権限
手順
--sshpubkey
オプションを指定してhost-mod
コマンドを実行し、base64 にエンコードされた公開鍵をホストエントリーにアップロードします。ホスト鍵を追加すると、ホストの DNS Secure Shell フィンガープリント (SSHFP) レコードが変更されるため、
--updatedns
オプションを使用してホストの DNS エントリーを更新します。以下に例を示します。$ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
実際のキーは通常、等号 (=) で終わりますが、より長いです。
複数の鍵をアップロードするには、複数の --sshpubkey コマンドラインパラメーターを入力します。
--sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
注記ホストには複数の公開鍵を指定できます。
- ホスト鍵をアップロードしたら、OpenSSH サービスのキャッシュを提供するように SSSD を設定 で説明するように、Identity Management を ID ドメインの 1 つとして使用するよう SSSD を設定し、OpenSSH がホスト鍵管理に SSSD ツールを使用するよう設定します。
検証
ipa host-show
コマンドを実行して、SSH 公開鍵が指定されたホストに関連付けられていることを確認します。$ ipa host-show client.ipa.test ... SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA client@IPA.TEST (ssh-rsa) ...
50.4.3. IdM Web UI を使用したホストの SSH 鍵の削除
ホスト鍵は、期限切れになるか、有効でなくなったら削除できます。IdM Web UI を使用して個々のホスト鍵を削除するには、以下の手順に従ってください。
前提条件
- IdM Web UI、またはホスト管理者ロールを管理する管理者権限
手順
- IdM Web UI にログインします。
-
Identity > Hosts
タブに移動します。 - 編集するホスト名をクリックします。
-
Host Settings
セクションで、削除する SSH 公開鍵の横にあるDelete
をクリックします。 -
ページ上部にある
Save
をクリックします。
検証
-
Host Settings
セクションで、鍵がSSH public keys
の下にリストされていないことを確認します。
50.4.4. IdM CLI を使用したホストの SSH 鍵の削除
ホスト鍵は、期限切れになるか、有効でなくなったら削除できます。IdM CLI を使用して個々のホスト鍵を削除するには、以下の手順に従います。
前提条件
- IdM CLI、またはホスト管理者ロールを管理する管理者権限
手順
ホストアカウントに割り当てられたすべての SSH 鍵を削除するには、鍵を指定せずに
--sshpubkey
オプションをipa host-mod
コマンドに追加します。$ kinit admin $ ipa host-mod --sshpubkey= --updatedns host1.example.com
--updatedns
オプションを使用してホストの DNS エントリーを更新することを推奨します。
アップロードされた鍵にタイプが含まれていない場合、IdM は鍵から自動的に鍵タイプを決定します。
検証
ipa host-show
コマンドを実行して、SSH 公開鍵が指定されたホストに関連付けられていないことを確認します。ipa host-show client.ipa.test Host name: client.ipa.test Platform: x86_64 Operating system: 4.18.0-240.el8.x86_64 Principal name: host/client.ipa.test@IPA.TEST Principal alias: host/client.ipa.test@IPA.TEST Password: False Member of host-groups: ipaservers Roles: helpdesk Member of netgroups: test Member of Sudo rule: test2 Member of HBAC rule: test Keytab: True Managed by: client.ipa.test, server.ipa.test Users allowed to retrieve keytab: user1, user2, user3