Menu Close

16.7. sshd 서비스의 두 번째 인스턴스를 사용하여 사용자 지정 유닛 파일 생성

시스템 관리자는 서비스 인스턴스를 여러 개 구성하고 실행해야 하는 경우가 많습니다. 이 작업은 원래 서비스 구성 파일의 사본을 생성하고 서비스의 기본 인스턴스와 충돌하지 않도록 특정 매개 변수를 수정하여 수행됩니다. 다음 절차에서는 sshd 서비스의 두 번째 인스턴스를 생성하는 방법을 보여줍니다.

절차

  1. 두 번째 데몬에서 사용할 sshd_config 파일의 사본을 만듭니다.

    # cp /etc/ssh/sshd{,-second}_config
  2. 이전 단계에서 생성한 sshd-second_config 파일을 편집하여 다른 포트 번호 및 PID 파일을 두 번째 데몬에 할당합니다.

    Port 22220
    PidFile /var/run/sshd-second.pid

    PortPidFile 옵션에 대한 자세한 내용은 sshd_config(5) 매뉴얼 페이지를 참조하십시오. 선택한 포트가 다른 서비스에서 사용되지 않는지 확인합니다. PID 파일은 서비스를 실행하기 전에 존재할 필요가 없으며, 서비스 시작 시 자동으로 생성됩니다.

  3. sshd 서비스에 대한 systemd 장치 파일의 사본을 생성합니다.

    # cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshd-second.service
  4. 이전 단계에서 생성한 sshd-second.service 를 다음과 같이 변경합니다.

    1. Description 옵션을 수정합니다.

      Description=OpenSSH server second instance daemon
    2. 첫 번째 인스턴스가 이미 시작된 후에만 시작하도록 After 옵션에 지정된 서비스에 sshd.service를 추가합니다.

      After=syslog.target network.target auditd.service sshd.service
    3. sshd의 첫 번째 인스턴스에는 키 생성이 포함되어 있으므로 ExecStartPre=/usr/sbin/sshd-keygen 행을 제거합니다.
    4. 대체 구성 파일을 사용하도록 -f /etc/ssh/sshd-second_config 매개변수를 sshd 명령에 추가합니다.

      ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS
    5. 위의 수정 후 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
  5. SELinux를 사용하는 경우 sshd의 두 번째 인스턴스에 대한 포트를 SSH 포트에 추가합니다. 그렇지 않으면 sshd의 두 번째 인스턴스가 포트에 바인딩하도록 거부됩니다.

    # semanage port -a -t ssh_port_t -p tcp 22220
  6. 부팅 시 자동으로 시작되도록 sshd-second.service를 활성화합니다.

    # systemctl enable sshd-second.service
  7. systemctl status 명령을 사용하여 sshd-second.service가 실행 중인지 확인합니다.
  8. 서비스에 연결하여 포트가 올바르게 활성화되어 있는지 확인합니다.

    ssh -p 22220 user@server

    방화벽이 사용 중인 경우 sshd의 두 번째 인스턴스에 대한 연결을 허용하도록 적절하게 구성되었는지 확인합니다.