我有一个正在运行的 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
我搜索了类似的问题/解决方案。有人说这是因为 SSH 守护进程试图在联网之前启动,他们建议更改ListenAddress
为. 我认为这不是我的原因,因为我的问题是在系统启动并运行后发生的。/etc/ssh/sshd_config
0.0.0.0
知道是什么原因造成的吗?这是 Ubuntu Server,它应该可以使用 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.
似乎在我重新加载 SSH 守护程序后开始出现此错误。我应该避免使用ssh reload
和使用ssh restart
吗?
我刚刚在我的 12.04 盒子上遇到了同样的问题。即相同的症状。唉,
ListenAddress
当inet
我inet6
在sshd_config
. 简而言之,这似乎是格式错误的症状sshd_config
- 尽管日志文件没有说明任何类似的内容。故障排除
sshd
我发现在任何此类情况下通常非常有用的是开始时
sshd
不要让它守护进程。就我而言,问题是既没有syslog
也没有auth.log
表现出任何有意义的东西。当我从终端启动它时,我得到:
好多了!此错误消息使我能够查看问题所在并进行修复。两个日志文件都不包含此输出。
注意:至少在 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 甚至是我需要支付额外费用才能获得带外访问的物理服务器)到机器)。您应该检查一下在SSH 开始陷入困境之前发生了什么
syslog
。如果网络子系统死了,这可以解释为什么sshd
开始失败。我也会检查
/var/log/auth.log
。它sshd
是日志,它可能会为您提供更好的错误消息。这似乎是错误 #687535 的结果,该错误最近在 natty 中得到修复,并已作为建议更新上传到 maverick 和 lucid。
https://bugs.launchpad.net/ubuntu/lucid/+source/openssh/+bug/687535
我鼓励大家去那里,尝试测试用例(搜索测试用例),并在安装建议的修复程序之前和之后发布你的结果。这将帮助 SRU 团队确定验证已完成并将其作为更新发布。
在
/etc/ssh/sshd_config
中,确保所有 yes 和 no 选项都是小写的。例如,如果您设置 ,PermitRootLogin No
,则 ssh 将不会启动。它实际上必须是PermitRootLogin no
。重新启动后,我在 Linode 上的 Ubuntu 11.10 映像遇到了类似的问题。ssh 服务会在 syslog 中产生:
这是一个测试盒,它有大约 60 天的正常运行时间,所以在此过程中,我安装了一些附加到 sshd_config 底部的东西:
注释这些行允许 ssh 启动。
Ubuntu ssh 无法启动并且 syslog 产生“init: ssh 主进程 (2044) 以状态 255 终止”
/usr/sbin/sshd -Ddp 10222
确定对我有用以确定 sshd_config 行错误
有同样的问题,上面的解决方案不起作用,但我有解决方案。
根据文档,路径没问题,所以我手动运行 sshd。
/var/run/sshd 权限是。
那么它的罚款。运行 ssh localhost 并检查。