本文主要介绍sshd配置错误导致无法远程连接ECS实例的原因以及解决方案。
问题现象
修改sshd配置文件后直接重启了实例,无法使用Workbench或第三方远程连接工具(例如PuTTY、Xshell、SecureCRT等)连接实例。
问题原因
/etc/ssh/sshd_config文件配置错误,导致SSH服务启动失败,造成无法通过基于SSH协议的远程登录方式连接ECS实例。
解决方案
通过VNC的方式远程连接ECS实例,检查并确认sshd配置的错误,修正后重启sshd服务。
以VNC方式远程连接ECS实例。
具体操作,请参见使用VNC登录实例。
执行以下命令,查找sshd所在路径。
which sshd
返回如下,表示sshd所在路径为
/usr/sbin/sshd
。执行以下命令,以测试模式运行sshd,检查sshd配置是否正确。
重要每次修改完sshd配置后,建议您在重启实例之前,先通过以下命令检查配置是否正确,这样可以有效避免出现本文描述的问题。
sudo /usr/sbin/sshd -t
无返回信息时,说明sshd配置正确。
有返回信息时,说明sshd配置错误。如下所示,说明
/etc/ssh/sshd_config
配置文件第144行的配置参数值被设置为不支持的"no1",需要修改。
修改sshd配置文件/etc/ssh/sshd_config。
打开
/etc/ssh/sshd_config
配置文件。sudo vim /etc/ssh/sshd_config
按
i
进入编辑模式,按照错误提示定位到错误行并修正。例如,修改第144行的配置,将UseDNS的值修改为no。UseDNS no
按
Esc
键,输入:wq!
,保存并退出编辑。
再次执行
sudo /usr/sbin/sshd -t
,确认配置是否已经修正。如下所示,无返回信息,表示错误已修正。重启sshd服务,使配置修改生效。
sudo systemctl restart sshd.service
说明如果您执行systemctl命令遇到错误,可参见在Linux实例中执行systemctl命令报错怎么办?