RHEL 7 で sshd のインスタンスを複数設定する
Environment
- Red Hat Enterprise Linux (RHEL) 7
openssh-server
Issue
Red Hat Enterprise Linux 7 で sshd
のインスタンスを複数設定するには
Resolution
この解決策は Red Hat Enterprise Linux 7 にのみ適用されます。RHEL 5 または RHEL 6 で sshd
のインスタンスを複数実行する場合は、こちらのページを参照してください。
以下の手順に従って、sshd
に 2 つ目のインスタンスを設定します。
-
(2 つ目のデーモンで使用されるように)
sshd_config
ファイルのコピーを作成します。
# cp /etc/ssh/sshd{,-second}_config # -
別のポート番号と PID file.ファイルに割り当てられるように、
sshd-second_config
を編集します。これを実現するには、キーワードPort
とPidFile
を使用します。このキーワードの詳細はsshd_config(5)
を参照してください。このポートが他のサービスで使用されていないことを確認してください。
Port 22220 PidFile /var/run/sshd-second.pid -
sshd
サービスに、systemd
ユニットファイルのコピーを作成します。
# cp /usr/lib/systemd/system/sshd{,-second}.service # -
以下の方法で
sshd-second.service
を変更します。-
Description
を変更します。
Description=OpenSSH server second instance daemon -
最初のインスタンスが起動してから 2 つ目のインスタンスが起動するように、
After
にsshd.service
を追加します。これにはキー生成も含まれます。
After=syslog.target network.target auditd.service sshd.service -
キー生成は
sshd.service
によって処理されるため、ExecStartPre
を削除します。 -
代わりの設定ファイルを使用するように、
sshd
に-f /etc/ssh/sshd-second_config
オプションを追加します。
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS
sshd-second_config
は以下のようになります。
[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 ln -s '/usr/lib/systemd/system/sshd-second.service' '/etc/systemd/system/multi-user.target.wants/sshd-second.service' #
Diagnostic Steps
sshd
の 2 つ目のインスタンスが起動しているかどうかは、systemctl
コマンドを実行すれば確認できます。
# systemctl status sshd-second.service
sshd-second.service - OpenSSH server second instance daemon
Loaded: loaded (/usr/lib/systemd/system/sshd-second.service; enabled)
Active: active (running) since Mon 2014-08-18 12:58:25 CEST; 1s ago
Main PID:4799 (sshd)
CGroup:/system.slice/sshd-second.service
`-4799 /usr/sbin/sshd -D -f /etc/ssh/sshd-second_config
Aug 18 12:58:25 server systemd[1]:Starting OpenSSH server second instance daemon...
Aug 18 12:58:25 server systemd[1]:Started OpenSSH server second instance daemon.
Aug 18 12:58:25 server sshd[4799]:Server listening on 0.0.0.0 port 22220.
Aug 18 12:58:25 server sshd[4799]:Server listening on :: port 22220.
#
ssh
の -p
オプションを使用して、クライアントからログインできます。
$ ssh -p 22220 user@server
ファイアウォールを使用している場合は、sshd
の 2 つ目のインスタンスに接続できるように適切に設定されていることを確認してください。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments