首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pam_unix(sudo: auth ):会话失败,auth无法识别[用户名]的密码

pam_unix(sudo: auth ):会话失败,auth无法识别[用户名]的密码
EN

Stack Overflow用户
提问于 2019-08-26 12:07:07
回答 5查看 50.2K关注 0票数 11

我正在使用ansible来提供我的Centos 7产品集群。不幸的是,执行以下命令的结果是使用ansible Tiemout和(pam) error conversation failed

同样的ansible命令运行良好,可以在流浪汉盒之外的虚拟实验室中执行。

不可接受的命令

代码语言:javascript
运行
复制
$ ansible master_server -m yum -a 'name=vim state=installed' -b -K -u lukas -vvvv
123.123.123.123 | FAILED! => {
    "msg": "Timeout (7s) waiting for privilege escalation prompt: \u001b[?1h\u001b=\r\r"
}

SSHd日志

代码语言:javascript
运行
复制
# /var/log/secure
Aug 26 13:36:19 master_server sudo: pam_unix(sudo:auth): conversation failed
Aug 26 13:36:19 master_server sudo: pam_unix(sudo:auth): auth could not identify password for [lukas]
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-08-27 10:58:43

我发现了问题所在。原来是帕姆氏 auth模块问题!让我来描述一下我是如何找到解决方案的。

上下文:

我设置了我的机器进行调试--也就是说,我打开了四个终端窗口。

  • 1终端(本地机器):这里,我正在执行ansible prduction_server -m yum -a 'name=vim state=installed' -b -K -u username
  • 第二终端(生产服务器):在这里,我执行journalctl -f (系统宽日志)。
  • 第三终端(生产服务器):在这里,我执行了tail -f /var/log/secure (用于sshd的日志)。
  • 4终端(生产服务器):这里,我正在编辑vi /etc/pam.d/sudo文件。

每次我从1终端执行命令时,都会得到以下错误:

代码语言:javascript
运行
复制
# ansible error - on local machine
Timeout (7s) waiting for privilege escalation prompt error.
代码语言:javascript
运行
复制
# sshd error - on remote machine
pam_unix(sudo:auth): conversation failed
pam_unix(sudo:auth):  [username]

我向我的同事展示了我的整个设置,他告诉我,这个错误必须使用"PAM“。坦率地说,这是我第一次听说帕姆。所以,我不得不读这个PAM教程。我发现,该错误与位于/etc/pam.d/sudo模块中的auth接口有关。在互联网上,我在这个pam_permit.so模块上结结巴巴地写着sufficient控制标志,解决了我的问题!

解决方案

基本上,我添加的是auth sufficient pam_permit.so行到/etc/pam.d/sudo文件中。请看下面的示例。

代码语言:javascript
运行
复制
$ cat /etc/pam.d/sudo
#%PAM-1.0
# Fixing ssh "auth could not identify password for [username]"
auth       sufficient   pam_permit.so

# Below is original config
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    optional     pam_keyinit.so revoke
session    required     pam_limits.so
session    include      system-auth

结论:

我花了4天时间来解决这个问题。我偶然发现了许多不适合我的解决方案,从“ansible host/config文件中的复制sudo密码”、"ldap特定配置“到从总是脾气暴躁的系统管理员那里得到建议!

注意:

由于我不是PAM方面的专家,所以我不知道此修复是否会影响系统的其他方面,所以请小心,不要盲目复制粘贴这段代码!不过,如果你是PAM专家,请与我们分享替代解决方案或投入。谢谢!

票数 16
EN

Stack Overflow用户

发布于 2020-03-12 18:10:35

假设lukas用户是一个本地帐户,您应该看看pam_unix.so模块是如何在您的system-auth pam文件中声明的。但是关于用户帐户和pam配置的更多信息对于一个特定的答案是必要的。

虽然添加了auth,但是足够的pam_permit.so足以获得访问。除了最不安全的测试环境之外,不推荐在任何情况下使用它。来自pam_permit手册页:

pam\_permit is a PAM module that always permit access. It does nothing else.

因此,以这种方式添加足以进行身份验证的pam_permit.so将完全绕过所有用户的安全性。

票数 8
EN

Stack Overflow用户

发布于 2021-05-04 18:10:49

我发现自己也处于同样的境地,把头发扯掉了。在我的例子中,隐藏在sudoers文件末尾的一行是:

代码语言:javascript
运行
复制
%sudo ALL=(ALL:ALL) ALL

这就撤销了它之前的授权。如果您没有使用sudo组,那么可以安全地删除这一行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57657645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档