SSH 服务器不工作(重新生成直到停止)

Kha*_*led 12 server ssh 10.04

我有一个正在运行的 Ubuntu Server 10.04.1。当我尝试通过 ssh 登录到服务器时,我无法登录。相反,我得到了connection refused错误。我尝试 ping 机器并得到回复!因此,明确的原因是 SSH 守护程序已停止。

重新启动后,我可以通过 ssh 登录到我的服务器。过了一段时间,我查看了我的日志/var/log/syslog,发现了以下记录:

Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2465) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2469) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2473) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2477) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2481) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2485) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2489) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2493) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2497) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2501) terminated with status 255
Jan 16 10:57:09 myserver init: ssh respawning too fast, stopped
Run Code Online (Sandbox Code Playgroud)

我搜索了类似的问题/解决方案。有人说,这是由SSH守护进程试图联网之前启动造成的,他们建议改变ListenAddress/etc/ssh/sshd_config0.0.0.0。我认为这不是我的原因,因为我的问题是在系统启动并运行后发生的。

知道是什么原因造成的吗?这是 Ubuntu 服务器,它应该使用 SSH 远程运行和访问。

更新:

这是我在/var/log/auth.log.

Jan 16 10:56:38 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/vim /etc/ssh/sshd_config
Jan 16 10:57:09 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/etc/init.d/ssh reload
Jan 16 10:57:09 myserver sshd[1465]: Received SIGHUP; restarting.
Jan 16 10:57:09 myserver sshd[2461]: Server listening on 0.0.0.0 port 22.
Jan 16 10:57:09 myserver sshd[2465]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2465]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2469]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2469]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2473]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2473]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2477]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2477]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2481]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2481]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2485]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2485]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2489]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2489]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2493]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2493]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2497]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2497]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2501]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2501]: fatal: Cannot bind any address.
Run Code Online (Sandbox Code Playgroud)

似乎在我重新加载 SSH 守护程序后开始出现此错误。我应该避免使用ssh reload和使用ssh restart吗?

0xC*_*22L 19

我的 12.04 盒子也遇到了同样的问题。即相同的症状。唉,它总是在我公司推出的发生ListenAddress与条款inetinet6地址在sshd_config。简而言之,这似乎是格式错误的症状sshd_config- 尽管日志文件没有说明任何类似的内容。

故障排除 sshd

我发现在任何此类情况下通常非常有用的是在sshd不让它守护进程的情况下启动。我的问题是既没有syslog也没有auth.log表现出任何有意义的东西。

当我从终端启动它时,我得到:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.
Run Code Online (Sandbox Code Playgroud)

好多了!此错误消息使我能够查看问题所在并进行修复。两个日志文件都不包含此输出。

注意:至少在 Ubuntu 上,这$(which sshd)是满足sshd绝对路径要求的最佳方法。否则你会得到以下错误:sshd re-exec requires execution with an absolute path. 该-p 10222品牌sshd听,替代端口,修改配置文件-这是这样,它不具有潜在冲突运行sshd情况。确保在这里选择一个自由端口。

这种方法多次帮助我发现问题,无论是身份验证问题还是其他类型。要获得真正详细的输出stdout,请使用$(which sshd) -Ddddp 10222(注意添加dd以增加详细程度)。有关更多调试优点检查man sshd


这种方法的主要优点是它允许您检查sshd配置无需sshd在默认端口上重新启动。通常这不应该干扰现有的 SSH 连接,但我已经看到了。因此,这允许人们在 - 可能 - 切断对远程服务器的访问之前验证配置文件(例如,我对某些 VPS 甚至物理服务器进行了验证,我需要支付额外费用才能获得带外访问权限到机器)。

  • 你的直接调用技巧救了我的培根。我的 sshd_config 文件(由 Chef 生成)中有一个错误,我可以使用这种技术解决该错误。感谢您抽出时间将其发布给大家。 (3认同)

Oli*_*Oli 7

您应该检查一下SSH 开始在syslog. 如果网络子系统死亡,那可以解释为什么sshd开始失败。

我也会检查/var/log/auth.log。这sshd是日志,它可能会给你一个更好的错误信息。