Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

RHEL 7 で sshd のインスタンスを複数設定する

Solution In Progress - Updated -

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 つ目のインスタンスを設定します。

  1. (2 つ目のデーモンで使用されるように) sshd_config ファイルのコピーを作成します。


    # cp /etc/ssh/sshd{,-second}_config #
  2. 別のポート番号と PID file.ファイルに割り当てられるように、sshd-second_config を編集します。これを実現するには、キーワード PortPidFile を使用します。このキーワードの詳細は sshd_config(5) を参照してください。このポートが他のサービスで使用されていないことを確認してください。


    Port 22220 PidFile /var/run/sshd-second.pid
  3. sshd サービスに、systemd ユニットファイルのコピーを作成します。


    # cp /usr/lib/systemd/system/sshd{,-second}.service #
  4. 以下の方法で sshd-second.service を変更します。

    • Description を変更します。


      Description=OpenSSH server second instance daemon
    • 最初のインスタンスが起動してから 2 つ目のインスタンスが起動するように、Aftersshd.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
  5. SELinux を使用する場合は、sshd の 2 番目のインスタンスを SSH ポートに追加します。追加しない場合、sshd の 2 番目のインスタンスがポートにバインドするのが拒否されます。


    # semanage port -a -t ssh_port_t -p tcp 22220 #
  6. システムの起動時に自動的に起動するように、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.