You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04 LTS中sshd_config禁用交互式键盘认证设置未生效,KbdInteractiveAuthentication仍为yes的原因排查

Ubuntu 20.04 LTS中sshd_config禁用交互式键盘认证设置未生效,KbdInteractiveAuthentication仍为yes的原因排查

嘿,我来帮你捋清楚这个问题——你明明在sshd_config里把KbdInteractiveAuthentication设成了no,但sshd -T输出里它还是yes,核心原因其实和你开着的UsePAM yes有关!

当UsePAM被设为yes时,OpenSSH的sshd会把KbdInteractiveAuthentication的控制权交给PAM(可插拔认证模块),这时候你在sshd_config里的相关设置会被直接忽略,转而采用PAM配置里的规则。

具体原因拆解

Ubuntu 20.04默认的/etc/pam.d/sshd配置文件里,会包含@include common-auth这一行,而common-auth又引用了pam_unix.so这类认证模块——这些模块默认是支持交互式键盘认证的,所以哪怕你在sshd_config里关了,PAM这边还是会把它打开,导致sshd -T显示yes。

两种解决思路

你可以根据自己的需求选其中一种:

  • 方案一:关闭UsePAM(需谨慎评估)
    把sshd_config里的UsePAM改成no,这样sshd就会完全遵循你在配置文件里的设置,KbdInteractiveAuthentication no就会生效。但要注意,关闭PAM可能会影响其他依赖它的功能,比如某些环境变量的传递、基于PAM的特定认证方式(比如LDAP认证),所以改之前要确认这些功能你都用不上,或者已经有替代方案。

  • 方案二:保留UsePAM但修改PAM配置
    如果你还需要PAM的功能,那就得调整PAM的sshd配置文件。编辑/etc/pam.d/sshd,注释掉和交互式认证相关的行(比如@include common-auth),但这种操作要非常小心,最好先在测试环境试,或者确保你有其他方式能登录服务器(比如物理控制台),避免改完锁自己出不去。

另外补充个小细节:在OpenSSH的新版本里,KbdInteractiveAuthentication是ChallengeResponseAuthentication的后续替代项,但只要UsePAM yes,这两个选项的设置都会被PAM接管,所以单独改sshd_config里的项是没用的。

备注:内容来源于stack exchange,提问作者ricekab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:18:06