14.2. sshd システムロールを使用した OpenSSH サーバーの設定
sshd システムロールを使用して、Ansible Playbook を実行することで複数の SSH サーバーを設定できます。
sshd システムロールは、SSH および SSHD 設定を変更する他のシステムロール (ID 管理 RHEL システムロールなど) とともに使用できます。設定が上書きされないようにするには、sshd ロールがネームスペース (RHEL 8 以前のバージョン) またはドロップインディレクトリー (RHEL 9) を使用していることを確認してください。
前提条件
-
1 つ以上の 管理対象ノード (
sshdシステムロールで設定するシステム) へのアクセスおよびパーミッション。 コントロールノード (このシステムから Red Hat Ansible Core は他のシステムを設定) へのアクセスおよびパーミッション。
コントロールノードでは、
-
ansible-coreパッケージおよびrhel-system-rolesパッケージがインストールされている。
-
RHEL 8.0-8.5 では、別の Ansible リポジトリーへのアクセス権を指定されており、Ansible をベースにする自動化用の Ansible Engine 2.9 が含まれています。Ansible Engine には、ansible、ansible-playbook などのコマンドラインユーティリティー、docker や podman などのコネクター、プラグインとモジュールが多く含まれています。Ansible Engine を入手してインストールする方法の詳細は、ナレッジベースのアーティクル記事 How to download and install Red Hat Ansible Engine を参照してください。
RHEL 8.6 および 9.0 では、Ansible Core (ansible-core パッケージとして提供) が導入されました。これには、Ansible コマンドラインユーティリティー、コマンド、およびビルトイン Ansible プラグインのセットが含まれています。RHEL は、AppStream リポジトリーを介してこのパッケージを提供し、サポート範囲は限定的です。詳細については、ナレッジベースの Scope of support for the Ansible Core package included in the RHEL 9 and RHEL 8.6 and later AppStream repositories を参照してください。
- マネージドノードが記載されているインベントリーファイルがある。
手順
sshdシステムロールの Playbook の例をコピーします。cp /usr/share/doc/rhel-system-roles/sshd/example-root-login-playbook.yml path/custom-playbook.yml
# cp /usr/share/doc/rhel-system-roles/sshd/example-root-login-playbook.yml path/custom-playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、テキストエディターでコピーした Playbook を開きます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Playbook は、以下のように、マネージドノードを SSH サーバーとして設定します。
-
パスワードと
rootユーザーのログインが無効である -
192.0.2.0/24のサブネットからのパスワードおよびrootユーザーのログインのみが有効である
設定に合わせて変数を変更できます。詳細は、SSH サーバーのシステムロール変数 を参照してください。
-
パスワードと
オプション: Playbook の構文を確認します。
ansible-playbook --syntax-check path/custom-playbook.yml
# ansible-playbook --syntax-check path/custom-playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルで Playbook を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
SSH サーバーにログインします。
ssh user1@10.1.1.1
$ ssh user1@10.1.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は以下のようになります。
-
user1は、SSH サーバーのユーザーです。 -
10.1.1.1は、SSH サーバーの IP アドレスです。
-
SSH サーバーの
sshd_configファイルの内容を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 192.0.2.0/24サブネットから root としてサーバーに接続できることを確認します。IP アドレスを確認します。
hostname -I 192.0.2.1
$ hostname -I 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow IP アドレスが
192.0.2.1-192.0.2.254範囲にある場合は、サーバーに接続できます。rootでサーバーに接続します。ssh root@10.1.1.1
$ ssh root@10.1.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow