问题摘要
在我的 Debian 11 系统上,打开新的 SSH 会话或sudo
在终端中首次使用时,我遇到了非常长的延迟(约 20-40 秒)。sudo
在同一终端中执行后续命令时可以立即生效,但延迟在新终端中再次出现。请注意,远程 SSH 和本地 SSH ( ssh admin@localhost
) 都会出现这种情况。
我尝试过的方法
UseDNS no
并GSSAPIAuthentication no
在 sshd_config 中设置。- 没有自定义或网络相关的 PAM 模块(没有
pam_ldap
、、等)pam_krb5
。pam_sss
pam_systemd.so
在普通会话中注释掉,没有任何效果。- nsswitch.conf 是标准的:仅适用于
files
和,不适用于用户/组 LDAP/NIS。dns
hosts
- hosts 是正确的,包括
127.0.1.1
主机名和真实 IP。 - 没有
/etc/nologin
文件。 - tmp 权限正确(
drwxrwxrwt
)。 - 没有 access.conf 规则。
- 配置文件、bash.bashrc、环境和用户点文件已清理或暂时移动。
- 没有配额或磁盘空间问题。
- 邮件存在并且可以访问。
- passwd 和 group 正常。
- sudoers 或 sudoers.d 中没有异常条目。
- 没有
/etc/motd.d/
或自定义 MOTD 脚本。 - 没有 limits.conf 或 limits.d 问题。
- 没有
/etc/ldap.conf
或/etc/sssd/sssd.conf
存在。 systemd-logind
、dbus
、 和polkit
正在运行并已重新启动。dmesg
、auth.log 或 syslog中没有错误。- 延迟期间没有高 CPU、内存或 I/O 负载。
- 没有网络挂载或自动文件系统 (autofs)。
- pts 权限正确。
- 主目录存在、具有正确的权限并且是本地的。
- Shell 是 bash 并且可以工作。
- 使用最少用户和 sh 作为 shell 进行测试
strace
sudo
并显示sshd
在执行 shell 或用户配置文件脚本之前发生延迟。strace
on及其子项显示在内部文件描述符(而非网络套接字)上sshd
长时间等待。select()
read()
- 延迟发生在密码验证成功之后但在 shell 提示符出现之前。
ssh -vvv
debug2: we sent a password packet, wait for reply
输出显示之后和之前的延迟debug1: Authentication succeeded (password)
。
更新
- 可用熵:256
- 硬件为Armv7 Cortex A7双核1GHz,2GB DDR3L,存储为eMMC
我完全不知道...最初看起来像是一个简单的 DNS 问题,但我完全不知道到底发生了什么。
感谢您的任何帮助或见解!