![Debian 启动时不会启动 SSH](https://linux22.com/image/690157/Debian%20%E5%90%AF%E5%8A%A8%E6%97%B6%E4%B8%8D%E4%BC%9A%E5%90%AF%E5%8A%A8%20SSH.png)
今天我的虚拟机网络接口出了点问题,所以不得不对我的接口文件进行一些修改。自从我这样做之后,当我启动 Debian 8.6 VM 时,我收到了 OpenBSD Secure Shell 服务器启动失败的错误。
[FAILED] Failed to start OpenBSD Secure Shell server.
See `systemctl status ssh.service` for details.
运行 sudo systemctl status ssh.service 会给出以下状态输出:
ssh.service - Open BSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
Active: failed (Result: start-limit) since Sat 2016-09-17 23:53:44 BST; 4min 37s ago
Process: 824 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=255)
Main PID: 824 (code=exited, status=255)
ssh.service: main process exited, code=exited, status=255/n/a
Unit ssh.service entered failed state
ssh.service start request repeated too quickly, refusing to start.
Failed to start OpenBSD Secure Shell server.
Unit ssh.service entered failed state.
谁知道这可能是什么原因造成的?
尽管我没有发现任何问题,但我的网络/接口文件是:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
答案1
SSHD 拒绝(重新)启动的常见原因是配置错误。检查:
$ /usr/sbin/sshd -T
答案2
sshd
OpenSSH 服务器停留在“正在激活”状态还有另一个原因。
也就是说,原因可能是“熵耗尽”,从而阻止相关的 OpenSSL 模块初始化。
要验证“熵耗尽”是否确实是问题所在,请首先通过发出以下命令停止 OpenSSH 服务,使其不再停留在“激活”状态:
systemctl stop ssh
...停止后sshd
,尝试通过停止所有其他文件和网络操作等来最小化所有 I/O 活动,然后发出以下命令sshd
重新启动:
/usr/sbin/sshd -ddd
...并观察以下消息的调试输出:
顺便说一句:该-ddd
选项在 OpenSSH 服务启动期间启用详细的调试输出。
随机:由于速率限制而错过 N 个随机警告
如果在发出命令后出现此消息/usr/sbin/sshd -ddd
,则意味着 OpenSSH 服务的 SSL 模块无法初始化,因为熵池已耗尽。
要解决此问题,请发出以下命令:
apt-get install haveged
..这将安装更快的熵源。您可以阅读更多关于haveged
这里。
这使其成为永久性的修复。