重启后 Ubuntu 18.04 上的 ssh 服务器服务无法启动

重启后 Ubuntu 18.04 上的 ssh 服务器服务无法启动

我在 Google Cloud 上有一个装有 Ubuntu 18.04Lts 的 VPS。

每次重启时,我都必须通过或启动 ssh 守护进程服务service ssh(d) startsystemctl start ssh(d)ssh 和 sshd 的工作方式类似并启动所需的服务。

但在串行端口上启动服务器,然后在服务器上启动 ssh 服务非常困难且麻烦。我尝试了以下方法来配置服务以在其后启动。我在通过谷歌或 Stack 答案找到的不同文章中找到了所有方法(我不知道它们背后的原因/逻辑)。我一个接一个地做了它们,大多数情况下没有先撤消前一个。

  1. 尝试安装并重新安装 openssh-server。
  2. 运行此命令:sudo systemctl enable sshd.service
  3. 运行此命令:systemctl enable sshd
  4. 运行此命令:sudo update-rc.d sshd defaults
  5. 运行此命令:systemctl enable ssh.socket
  6. /etc/rc*.d/S**ssh检查是否存在符号链接
  7. 注释掉特定的ListenAddress指令并添加ListenAddress 0.0.0.0让 sshd 监听文件中的任何地址:/etc/ssh/sshd_config
  8. 将此行编辑为文件 /etc/init.d./ssh 中的# Required-Start: $remote_fs $syslog此行(以在网络准备就绪之前停止 sshd 启动)。# Required-Start: $remote_fs $syslog $network
  9. 将此行:sshd &添加到文件(末尾)/etc/init.d/rc.local
  10. 编辑此文件:/etc/rc.local并添加此行:/etc/init.d/ssh start
  11. 编辑/etc/ssh/sshd_config文件并将其中的端口更改为 2222。还将设置PasswordAuthenticationyes
  12. 在 root 的 crontab 文件中添加/尝试了以下几行:@reboot mkdir -p -m0755 /var/run/sshd && systemctl restart ssh.service。没有用,然后尝试了这个@ systemctl restart ssh.service。然后也注释掉这个,又尝试了这个:@reboot service ssh start。但是再次注释掉这个并尝试了最后这个:@reboot sleep 15 && /bin/systemctl restart sshd

即使尝试了这 15 种解决方案,ssh 服务在重启时仍然无法启动。请帮忙。

答案1

打开 /usr/lib/systemd/system/ssh.service

在 [Unit] 中更改以下行

之后=network.target auditd.service

之后=网络-在线的.目标 auditd.服务

这将使 sshd 启动NetworkManager 启动接口,以便它可以绑定到特定 IP,而不是 0.0.0.0

对我有用

答案2

首先,这被证明是我运营商的少数问题之一,我无法在 Google/Stack Exchange 等上找到任何解决方案!!

最后,在花了整整两三天时间研究这个问题,看了几十个网页之后,我终于偶然解决了它。

当实例通过串口显示时,我注意到一个错误,显示它正在尝试挂载一个不再可用的硬盘。经过进一步的查看,我发现由于这个“无法找到”的磁盘,nginx 服务没有启动(我不知道这背后的原因)。正因为如此,后来我发现,ssh 守护进程服务没有启动(我不知道为什么当我这样命令时,ssh(d) 服务能够手动启动?!!

因此,解决方案是编辑文件/etc/fstab并从中删除自动安装行。这导致 Nginx 正确加载,从而导致“sshd”正确启动/加载!!

想想看!数十个论坛都没有解决方案,碰巧提到了这一点。

答案3

就我而言,我已经通过停止、禁用、启用和重新启动服务 ssh 解决了这个问题。

  1. sudo systemctl 停止 ssh
  2. sudo systemctl 禁用 ssh
  3. sudo systemctl 启用 ssh
  4. sudo systemctl 重新启动 ssh

在 Ubuntu 18.04.06 LTS 上

相关内容