centos

CentOS SSH服务如何自动重启

小樊
52
2025-04-08 12:22:47
栏目: 智能运维

要使 CentOS 上的 SSH 服务在意外停止或崩溃时自动重启,您可以使用 systemd(CentOS 7 及更高版本)或 init.d(CentOS 6 及更低版本)来实现。下面是两种方法的详细步骤:

对于 CentOS 7 及更高版本(使用 systemd):

  1. 首先,确保 SSH 服务已经安装并启用。您可以使用以下命令检查 SSH 服务的状态:
sudo systemctl status sshd
  1. 如果 SSH 服务未运行,请使用以下命令启动它:
sudo systemctl start sshd
  1. 要使 SSH 服务在系统启动时自动运行,请使用以下命令:
sudo systemctl enable sshd
  1. 若要确保 SSH 服务在意外停止时自动重启,您可以创建一个 systemd 服务监视器。首先,创建一个新的 systemd 服务文件:
sudo vi /etc/systemd/system/sshd-monitor.service
  1. 将以下内容粘贴到新创建的服务文件中:
[Unit]
Description=SSH Service Monitor
After=network.target sshd.service

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart sshd

[Install]
WantedBy=multi-user.target
  1. 保存并关闭文件。然后,重新加载 systemd 配置:
sudo systemctl daemon-reload
  1. 启用并启动新创建的 SSH 服务监视器:
sudo systemctl enable sshd-monitor.service
sudo systemctl start sshd-monitor.service

现在,如果 SSH 服务意外停止,systemd 将自动重启它。

对于 CentOS 6 及更低版本(使用 init.d):

  1. 首先,确保 SSH 服务已经安装并启用。您可以使用以下命令检查 SSH 服务的状态:
sudo service sshd status
  1. 如果 SSH 服务未运行,请使用以下命令启动它:
sudo service sshd start
  1. 要使 SSH 服务在系统启动时自动运行,请使用以下命令:
sudo chkconfig sshd on
  1. CentOS 6 不支持像 systemd 那样的服务监视器。但是,您可以使用 monit 或类似的工具来监视 SSH 服务并在其停止时自动重启。首先,安装 monit:
sudo yum install monit
  1. 使用以下命令启动并启用 monit:
sudo service monit start
sudo chkconfig monit on
  1. 编辑 monit 配置文件以添加 SSH 服务监视:
sudo vi /etc/monit/conf.d/sshd
  1. 将以下内容粘贴到配置文件中:
check process sshd with pidfile /var/run/sshd/sshd.pid
  start program = "/etc/init.d/sshd start"
  stop program = "/etc/init.d/sshd stop"
  if failed host 127.0.0.1 port 22 protocol ssh then restart
  1. 保存并关闭文件。然后,重新加载 monit 配置:
sudo service monit reload

现在,如果 SSH 服务意外停止,monit 将自动重启它。

0
看了该问题的人还看了