本文介绍在Linux系统的ECS实例中,启动SSH服务时提示“Bad configuration options”错误的错误原因和解决方案。
问题现象
在Linux系统的ECS实例启动SSH服务,命令行或secure日志中可能会出现类似如下信息。
/etc/ssh/sshd_config: line 2: Bad configuration options:\\ /etc/ssh/sshd_config: terminating, 1 bad configuration options
问题原因
ECS实例内SSH服务对应的配置文件/etc/ssh/sshd_config
存在文件编码、配置错误等异常,导致SSH服务启动失败。
解决方案
您可以根据需要,选择合适的方案进行修复。
根据报错信息修改配置文件
如果错误信息中明确指出了具体的错误配置,您可以根据错误信息,修改相应配置。
使用VNC远程连接ECS实例。
具体操作,请参见连接方式概述。
执行如下命令,打开
sshd_config
文件。vim /etc/ssh/sshd_config
按
i
键进入编辑模式。根据错误提示,修改相应配置。
说明您在一台正常的ECS实例,对比
/etc/ssh/sshd_config
文件,进行修改。以测试模式运行sshd。
/usr/sbin/sshd -t
无返回信息时,说明sshd配置正确。
执行如下命令,重新启动SSH服务。
service sshd start
将正常实例中的sshd_config
文件上传到该异常实例进行修复
如果错误较多,或者错误信息中没有明确的错误说明,可以将正常实例的/etc/ssh/sshd_config
文件上传到目标异常实例进行修复。
通过FTP等方式将正常实例上的
/etc/ssh/sshd_config
文件上传到目标实例。假设上传目录为
/tmp
,执行如下命令,将文件拷贝到正常目录。cp /tmp/sshd_config /etc/ssh/sshd_config
执行如下命令,修改文件权限、所有者和所属组。
chmod 600 /etc/ssh/sshd_config chown root:root /etc/ssh/sshd_config
说明如果无法上传外部正常配置文件,也可以对照正常配置文件,直接手工编辑、撰写配置文件。
执行如下命令,重新启动SSH服务。
service sshd start
重新安装SSH服务
如果上述操作不便实施,也可以参阅如下步骤,通过重装SSH服务来进行问题修复。
使用VNC远程连接ECS实例。
具体操作,请参见连接方式概述。
执行如下命令,卸载SSH服务。
rpm -e openssh-server
执行如下命令,安装SSH服务。
yum install openssh-server
执行如下命令,启动SSH服务。
systemctl start sshd.service
通过回滚系统盘恢复
如果以上方案都无法修复,您可以通过回滚系统盘历史快照的方式来进行修复。具体操作,请参见使用快照回滚云盘。
快照回滚会导致回滚点之后的数据丢失,请务必确认后再操作。
建议按时间从近到远的顺序逐一尝试回滚快照,直至SSH服务能正常运行。如果回滚后还是无法正常运行SSH服务,则说明相应时间点的系统已经出现异常。