1.8. 使用 sshd 服务的第二个实例创建一个自定义单元文件
如果您需要配置并运行服务的多个实例,您可以创建原始服务配置文件的副本并修改某些参数以避免与服务的主实例冲突。
流程
					要创建 sshd 服务的第二个实例:
				
- 创建第二个守护进程将使用的 - sshd_config文件的一个副本:- cp /etc/ssh/sshd{,-second}_config- # cp /etc/ssh/sshd{,-second}_config- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 编辑上一步中创建的 - sshd-second_config文件,为第二个守护进程分配不同的端口号和 PID 文件:- Port 22220 PidFile /var/run/sshd-second.pid - Port 22220 PidFile /var/run/sshd-second.pid- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 有关 - Port和- PidFile选项的更多信息,请参阅- sshd_config(5)手册页。请确定您选择的端口没有被其他服务使用。在运行该服务前,PID 文件不一定存在,它会在服务启动时自动生成。
- 为 - sshd服务创建- systemd单元文件的一个副本:- cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshd-second.service - # cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sshd-second.service- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 更改创建的 - sshd-second.service:- 修改 - Description选项:- Description=OpenSSH server second instance daemon - Description=OpenSSH server second instance daemon- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 - sshd.service添加到- After选项中指定的服务中,以便第二个实例仅在第一个实例启动后启动:- After=syslog.target network.target auditd.service sshd.service - After=syslog.target network.target auditd.service sshd.service- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								删除 ExecStartPre=/usr/sbin/sshd-keygen行,sshd的第一个实例包括密钥生成。
- 为 - sshd命令添加- -f /etc/ssh/sshd-second_config参数,以便使用其它配置文件:- ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS - ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config $OPTIONS- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改后, - sshd-second.service单元文件包含以下设置:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 如果使用 SELinux,请将 - sshd的第二个实例的端口添加到 SSH 端口中,否则- sshd的第二个实例将被拒绝绑定到端口:- semanage port -a -t ssh_port_t -p tcp 22220 - # semanage port -a -t ssh_port_t -p tcp 22220- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 启用 - sshd-second.service,以便在启动时自动启动:- systemctl enable sshd-second.service - # systemctl enable sshd-second.service- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
						使用 systemctl status命令验证sshd-second.service是否在运行。
- 通过连接到该服务来验证是否正确启用了端口: - ssh -p 22220 user@server - $ ssh -p 22220 user@server- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 确保将防火墙配置为允许连接 - sshd的第二个实例。