将 sshd_config 更改为端口 2222 后无法重新启动 SSH 守护程序

将 sshd_config 更改为端口 2222 后无法重新启动 SSH 守护程序

我一直在寻找,但找不到解决我遇到的问题的方法。我正在运行Ubuntu 16.04 LTS,并按照 Ubuntu 上的说明进行操作2222通过更新文件来将 SSH 端口更改为sshd_config

# What ports, IPs and protocols we listen for
Port 2222

但是,当我执行命令时sudo systemctl restart sshd.service,只收到以下错误:

Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details.

然后我执行了命令systemctl status ssh.service并得到了

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2016-09-07 23:24:04 EDT; 1min 28s ago
  Process: 16813 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
 Main PID: 16813 (code=exited, status=255)

Sep 07 23:24:04 sys-0 systemd[1]: Starting OpenBSD Secure Shell server...
Sep 07 23:24:04 sys-0 systemd[1]: ssh.service: Main process exited, code=exited, status=255/n/a
Sep 07 23:24:04 sys-0 systemd[1]: Failed to start OpenBSD Secure Shell server.
Sep 07 23:24:04 sys-0 systemd[1]: ssh.service: Unit entered failed state.
Sep 07 23:24:04 sys-0 systemd[1]: ssh.service: Failed with result 'exit-code'.

这个错误是什么意思?我该如何解决?

答案1

作为@techraf 说,很可能你在 中犯了一个简单的错误/etc/ssh/sshd_config。尝试sshd 测试模式

$ sudo sshd -t
/etc/ssh/sshd_config: line 1: Bad configuration option: sds

手册页

  • -t 测试模式。仅检查配置文件的有效性和密钥的完整性。这对于可靠地更新 sshd 很有用,因为配置选项可能会发生变化。
  • -T 扩展测试模式. 检查配置文件的有效性,将有效配置输出到 stdout 然后退出。可选地,可以通过使用一个或多个指定连接参数来应用匹配规则-C选项

答案2

您是否在使用 的系统上运行SELinux?这可能是拒绝端口绑定;请尝试添加新规则。

semanage port -a -t ssh_port_t -p tcp 2222

答案3

我也犯了同样的错误。经过一段时间的苦思冥想,我发现我/etc/passwd通过运行自定义的 Linux 服务器设置 Bash 脚本破坏了条目,这个脚本以前运行良好,但这次“sed”命令中的正则表达式删除了所有现有条目 :D 从另一个正常运行的 Linux 服务器复制粘贴默认条目后,我终于可以重新启动 sshd 了。

/etc/passwd因此,在应用任何正则表达式替换之前,请不要忘记备份原始文件:)

答案4

编辑sshd_config

sudo nano /etc/ssh/sshd_config

并注释掉这一行:

Subsystem sftp /usr/lib/openssh/sftp-server

我的意思是将其改为:

# Subsystem sftp /usr/lib/openssh/sftp-server

相关内容