搜索

1.8. 使用 sshd 服务的第二个实例创建一个自定义单元文件

download PDF

如果您需要配置和运行服务的多个实例,您可以创建原始服务配置文件的副本并修改某些参数,以避免与服务的主实例冲突。

步骤

要创建 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. sshd.service 添加到 After 选项中指定的服务,以便第二个实例仅在第一个实例启动后启动:

      After=syslog.target network.target auditd.service sshd.service
    3. 删除 ExecStartPre=/usr/sbin/sshd-keygen 行,sshd 的第一个实例包括密钥生成。
    4. sshd 命令添加 -f /etc/ssh/sshd-second_config 参数,以便使用其它配置文件:

      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 的第二个实例的连接。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.