我刚刚将 Debian 服务器从 Stretch(稳定)升级到 Buster(测试)。
我似乎无法解决一件奇怪的事情:
$ ssh [email protected] -p [censored] -o ConnectTimeout=5 -i /home/vlastimil/.ssh/id_rsa -vvv
结果是:
OpenSSH_7.6p1 Ubuntu-4, OpenSSL 1.0.2n 7 Dec 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "192.168.0.102" port [censored]
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 192.168.0.102 [192.168.0.102] port [censored].
debug2: fd 3 setting O_NONBLOCK
debug1: connect to address 192.168.0.102 port [censored]: Connection refused
ssh: connect to host 192.168.0.102 port [censored]: Connection refused
但是,如果我在本地以该用户身份登录(我什至可以注销,只需要一次登录),它就可以工作。
我能够以 root 身份登录。然而,尽管交换了公钥,但只能从一台机器进行。
此外,只需从该一台计算机进行一次 root 登录,然后就可以从另一台计算机以 root 身份登录。
谁能详细说明一下,如何调试这个问题?
服务器的配置:
# grep -v '#' /etc/ssh/sshd_config
Port [censored]
Protocol 2
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
StrictModes yes
HostbasedAuthentication no
IgnoreRhosts yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
PrintLastLog no
Banner none
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
KeyRegenerationInterval 3600
ServerKeyBits 4096
Ciphers [email protected],[email protected]
MACs [email protected]
KexAlgorithms [email protected]
FingerprintHash sha512
Match Address 192.168.0.*
PermitRootLogin yes
Match all
PermitRootLogin no
答案1
答案2
connection refused
表明sshd
没有运行。
这可能只是时间问题:当控制台出现登录提示时,并不能保证所有系统服务都已完成启动。
sshd
也可能会陷入等待状态/dev/[u]random
,特别是当系统位于网络流量很少的网段时。在这种情况下,系统可用的真正随机源非常少,并且很难收集足够的真正随机位来最初为内核的随机数生成器播种。登录到系统控制台将以键盘中断调用时间最低位的形式提供一些随机性。如果系统具有某种形式的硬件 RNG,启用它可能会解决此问题。
要进行诊断,只需在控制台登录提示符处输入几行废话,而无需实际登录。如果sshd
此后响应正常,则内核可能缺乏随机性并且无法为内核 RNG 提供种子,从而导致启动sshd
延迟。
或者它可能是某种systemd
依赖性错误,仅允许sshd
在与登录相关的进程首先启动时启动。这将是 Debian Buster 仍然是该发行版的原因之一testing
:如果这就是原因,请发送错误报告。
答案3
该包已经解决了这个问题。
线程: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=912087