SSH服务启动时报“main process exited, code=exited”错误

本文仅供学习。【云技术在线】专业提供阿里云、华为云、腾讯云技术支持,有任何问题请与我们联系。

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

在Linux系统的ECS实例中,使用service或systemctl指令启动SSH服务时,命令行没有返回任何报错信息,但服务实际没有正常运行。查看secure日志,发现类似如下错误信息。

sshd.service: main process exited, code=exited, status=203/EXEC.
init: ssh main process (1843) terminated with status 255.

问题原因

该问题的原因通常是PATH环境变量配置异常,或SSH软件包相关文件被移除。

解决方案

我们提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

注意:本文相关配置及说明已在CentOS 6.5 64位操作系统中进行过测试。其它Linux发行版配置可能有所差异,具体情况请参阅相应发行版的官方文档。

请按照如下操作步骤,进行检查并解决问题。

  1. 通过管理终端进入系统。
  1. 执行如下命令,检查环境变量配置。
    echo $PATH

    系统返回类似如下,该值为PAHT环境变量的默认值。
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  1. 如果PATH环境变量的默认值被改变,则需执行如下命令,进行变量重置。

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  1. 执行如下命令,查找并确认sshd程序的路径。
    find / -name sshd

    系统返回类似如下,确认包含sshd程序的默认路径。

    /usr/sbin/sshd
  1. 如果相应文件不存在,建议重新安装SSH软件包,也可尝试通过FTP等方式从外部上传正常文件。
  1. 执行如下命令,重启SSH服务即可。
    service sshd restart

提示:如果还有问题,可以参阅云服务器 ECS Linux SSH 无法登录问题排查指引做进一步排查分析。

适用于

  • 云服务器 ECS

如果您的问题仍未解决,您可以联系【云技术在线】工程师。

【云技术在线】免费提供阿里云、华为云、腾讯云的产品选型,架构设计,安装配置,故障排查,数据迁移等技术服务,有任何需求请与我们联系!13121395187(微信同号)