[20260319]sshd配置问题UseDNS.txt

[20260319]sshd配置问题UseDNS.txt

--//生产系统遇到的问题,使用ssh无法登录,机器前几天重启过,只能到机房在主机登录查看,发现sshd服务没有起来。

--//问题已经解决,在测试环境模拟故障的产生过程。
--//尝试启动sshd服务。
# systemctl start sshd
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
--//报错。

# systemctl status sshd.service
* sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Thu 2026-03-19 09:14:13 CST; 24s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 3025 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=255)
 Main PID: 2913 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/sshd.service

Mar 19 09:14:13 xxxxyyyy systemd[1]: Failed to start OpenSSH server daemon.
Mar 19 09:14:13 xxxxyyyy systemd[1]: Unit sshd.service entered failed state.
Mar 19 09:14:13 xxxxyyyy systemd[1]: sshd.service failed.
--//发现sshd服务启动失败。

# journalctl -xe
-- Unit sshd.service has begun starting up.
Mar 19 09:14:55 xxxxyyyy sshd[3039]: /etc/ssh/sshd_config line 129: Bad yes/no argument: No
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mar 19 09:14:55 xxxxyyyy systemd[1]: sshd.service: control process exited, code=exited status=255
Mar 19 09:14:55 xxxxyyyy systemd[1]: Failed to start OpenSSH server daemon.
-- Subject: Unit sshd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit sshd.service has failed.
--
-- The result is failed.
Mar 19 09:14:55 xxxxyyyy systemd[1]: Unit sshd.service entered failed state.
Mar 19 09:14:55 xxxxyyyy systemd[1]: sshd.service failed.
--//注意看下划线,提示129行存在问题。

# sed -n '129p' /etc/ssh/sshd_config
UseDNS No

--//没有想到不能写成大写No,该值缺省配置是UseDNS yes。估计以前改动后,没有验证重启sshd服务,导致机器重启后,sshd启动失败。
--//修改如下:
UseDNS no

--//再次尝试启动sshd服务。
# systemctl start sshd
# systemctl status sshd
* sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2026-03-19 09:19:09 CST; 1min 10s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 3089 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 3090 (sshd)
   CGroup: /system.slice/sshd.service
           `-3090 /usr/sbin/sshd

Mar 19 09:19:09 xxxxyyyy systemd[1]: Starting OpenSSH server daemon...
Mar 19 09:19:09 xxxxyyyy systemd[1]: PID file /var/run/sshd.pid not readable (yet?) after start.
Mar 19 09:19:09 xxxxyyyy sshd[3090]: Server listening on 0.0.0.0 port 22.
Mar 19 09:19:09 xxxxyyyy sshd[3090]: Server listening on :: port 22.
Mar 19 09:19:09 xxxxyyyy systemd[1]: Started OpenSSH server daemon.
--//再次尝试ssh登录问题消失。
--//事后看了以前工作笔记,记忆里有一个方法执行sshd -t可以查看sshd配置文件是否正确的命令。

--//尝试修改回来,测试:
 # sshd -t
/etc/ssh/sshd_config line 129: Bad yes/no argument: No

# sshd -T
/etc/ssh/sshd_config line 129: Bad yes/no argument: No
--//提示类似,使用该命令也可以发现sshd配置错误,收尾更正回来。

# cat -n /etc/ssh/sshd_config| grep 129
   129  UseDNS no

# nl -ba /etc/ssh/sshd_config| grep 129
   129  UseDNS no

--//做运维还是要小心小心再小心,一个小的错误查找要浪费许多时间。
--//另外提醒自己在修改配置时,至少保留1个登录会话,还有简单的修改最后也要做笔记,该问题主要原因是当时修改没有尝试重启
--//sshd服务。如果当时重启sshd服务,问题应该马上暴露出来,定位也相对容易,毕竟知道自己做了那些修改。

请使用浏览器的分享功能分享到微信等