Red Hat Training
A Red Hat training course is available for RHEL 8
17.7. sshd サービスの 2 番目のインスタンスを使用したカスタムユニットファイルの作成
システム管理者は、サービスのインスタンスを複数設定し、実行しなければならないことが多々あります。これは、サービスの主なインスタンスとの競合を避けるために、元のサービス設定ファイルのコピーを作成し、特定のパラメーターを変更することで実行します。以下の手順は、sshd
サービスの 2 つ目のインスタンスを作成する方法を示しています。
手順
2 つ目のデーモンで使用する、
sshd_config
ファイルのコピーを作成します。# cp /etc/ssh/sshd{,-second}_config
作成した
sshd-second_config
ファイルを編集し、2 つ目のデーモンに別のポート番号と PID ファイルを割り当てます。Port 22220 PidFile /var/run/sshd-second.pid
Port
オプションおよびPidFile
オプションの詳細は、man ページのsshd_config
(5) を参照してください。他のサービスで使用されていないポートを選択してください。PID ファイルはサービスの実行時に存在していなければいけないものではありません。存在しない場合は、サービスの起動時に自動的に生成されます。sshd
サービスの systemd ユニットファイルのコピーを作成します。# cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshd-second.service
作成した
sshd-second.service
を以下のように変更します。Description
オプションを変更します。Description=OpenSSH server second instance daemon
After
オプションを指定するサービスに sshd.service を追加し、最初のインスタンスが起動した場合に限り 2 つ目のインスタンスが起動するようにします。After=syslog.target network.target auditd.service sshd.service
- sshd の最初のインスタンスには鍵の生成が含まれるため、ExecStartPre=/usr/sbin/sshd-keygen 行を削除します。
sshd
コマンドに-f /etc/ssh/sshd-second_config
パラメーターを追加して、代替の設定ファイルが使用されるようにします。ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS
上記のように変更すると、sshd-second.service は以下のようになります。
[Unit] Description=OpenSSH server second instance daemon After=syslog.target network.target auditd.service sshd.service [Service] EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
SELinux を使用している場合は、sshd の 2 番目のインスタンスのポートを SSH ポートに追加します。追加しないと、sshd の 2 番目のインスタンスがポートにバインドされません。
# semanage port -a -t ssh_port_t -p tcp 22220
システムの起動時にこのサービスが自動的に起動するように、sshd-second.service を有効にします。
# systemctl enable sshd-second.service
-
systemctl status
コマンドを使用して sshd-second.service が実行中かどうかを確認します。 さらに、サービスに接続して、ポートが正しく有効化されていることを確認します。
$
ssh -p 22220 user@server
ファイアウォールを使用している場合は、sshd の 2 番目のインスタンスへの接続を許可するように適切に設定されていることを確認してください。