使用 ssh 连接到我的一台服务器需要 20 多秒才能启动。
这与 LAN 或 WAN 条件无关,因为与自身的连接采用相同的 (ssh localhost)。最终建立连接后,与服务器交互速度超快。
使用 -vvv 显示说“承诺:网络”后连接卡住了。此时,身份验证(此处使用密钥)已经完成,如下所示:
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
Run Code Online (Sandbox Code Playgroud)
(...卡在这里 15 到 25 秒...)
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
Run Code Online (Sandbox Code Playgroud)
服务器是 Ubuntu 16.04。过去我在另一台服务器(是 Ubuntu 12.04)上已经发生过这种情况,神经找到了解决方案,一段时间后问题消失了......
sshd_config 是 Ubuntu 提供的默认配置。
到目前为止,我已经尝试过:
Str*_*dic 52
这可能是D-Bus和的问题systemd。如果dbus服务由于某种原因重新启动,您还需要重新启动systemd-logind.
您可以通过打开 ssh 守护进程日志(在 Ubuntu 上应该是/var/log/auth.log)来检查这是否是问题,并检查它是否有以下几行:
sshd[2721]: pam_systemd(sshd:session): Failed to create session: Connection timed out
Run Code Online (Sandbox Code Playgroud)
如果是,只需重新启动systemd-logind服务:
systemctl restart systemd-logind
Run Code Online (Sandbox Code Playgroud)
我在 CentOS 7 上遇到了同样的问题,因为它messagebus已重新启动(这就是D-Bus在 CentOS 上调用服务的方式)。
M-J*_*ack 28
找到答案:
在 sshd_config 文件中将 UsePAM 从 yes 更改为 no
重新启动 ssh 服务后,现在可以立即连接到服务器。在这台服务器上,PAM 链接到 ldap,所以这可能是原因,即使我在这里连接的是在服务器本身上声明的用户,而不是 LDAP 用户。
嗯,这更像是一种绕过问题的方法,而不是真正的解决方案......我有其他服务器以相同的方式设置,但没有出现此问题。
希望这可以帮助某人...
Ric*_*arn 18
这发生在我的两台 Fedora 25 服务器上,是由于多次尝试 SSH 登录失败造成的。
(使用GSSAPIAuthentication=noandUseDNS=no或重新启动的常见建议systemd-logind没有区别。)
在这些服务器上,/etc/pam.d/postlogin包含:
session optional pam_lastlog.so silent noupdate showfailed
Run Code Online (Sandbox Code Playgroud)
手册页pam_lastlog解释了该showfailed选项将:
从 btmp 显示失败的登录尝试次数和最后一次失败尝试的日期。
在这些服务器上,/var/log/btmp由于多次登录尝试失败,文件非常庞大。该btmp日志文件没有被任何旋转。
我安装了这个logrotate包以确保日志文件将来会被轮换。(在 Fedora 上,随附的配置logrotate处理 . 的旋转/var/log/btmp。)
我还删除了巨大的btmp日志文件;一旦我这样做了,连接到服务器又是瞬间的。
小智 7
在 Ubuntu 16+ 上,每次我看到它ssh -v XXX@YYY停滞时pledge: network都可以按照我在此处找到的说明进行修复 修复慢速 SSH 登录的综合指南。具体来说,似乎不需要的可选 PAM 模块导致了延迟。
在/etc/pam.d/common-session机器上,您会看到(即服务器)登录缓慢。注释掉该行session optional pam_systemd.so。那应该立即解决问题。
这避免了必须完全关闭 PAM,这会削弱使用密码登录的能力。
小智 6
我的问题(Ubuntu 19.10)是我的:
/etc/pam.d/sshd
# Print the message of the day upon successful login.
# This includes a dynamically generated part from /run/motd.dynamic
# and a static (admin-editable) part from /etc/motd.
session optional pam_motd.so motd=/run/motd.dynamic
session optional pam_motd.so noupdate
Run Code Online (Sandbox Code Playgroud)
评论 motd 设置让我很受用。
小智 5
对我来说,这个问题是由大(数百 MB)btmp文件引起的。此文件记录登录尝试。当人们试图暴力破解您的密码时,此文件可能会很大并导致该"pledge: network"阶段的延迟。
尝试清除日志文件
echo "" > /var/log/btmp
看看它是否有帮助。
| 归档时间: |
|
| 查看次数: |
48967 次 |
| 最近记录: |