ssh 和 sudo: pam_unix(sudo:auth): 对话失败,auth 无法识别 [用户名] 的密码。

问题描述 投票:0回答:1

我面临着一个奇怪的行为,试图通过ssh以无密码登录的方式以sudo的方式运行rsync.这是我在几十台服务器上做的事情,我遇到了这个令人沮丧的问题,连接到一对Ubuntu 18.04.4服务器上。

PREMISE

  1. 从CLIENT到SERVER的无密码SSH与账户USER的工作原理一样。

  2. 当我登录SERVER时,我可以用账户USER来进行sudo操作

  3. 在 SERVER 上,我在下面的内容中加入了以下内容 等sudoers

    user ALL=NOPASSWD:usrbinrsync。

现在,如果我以用户USER的身份从机器CLIENT启动这个简单的测试,我收到了以下sudo错误信息。

$ ssh [email protected] -p 2310 sudo rsync
sudo: no tty present and no askpass program specified

此外,在SERVER的 varlogauth.log 我发现了这个错误。

sudo: pam_unix(sudo:auth): conversation failed
sudo: pam_unix(sudo:auth): auth could not identify password for [user]
ssh sudo rsync pam
1个回答
0
投票

我已经找到了解决办法,感谢Centos。事实上,由于Centos的配置比较复杂,所以 等sudoers (与Ubuntu或Debian相比),我被迫将我的附加配置放到了外部文件中的 etcsudoers.d 而不是直接把它放到 等sudoers

解决方法。

  1. 增加配置 直接进入等sudoers 行不通
  2. 将所需的附加设置放在目录内的文件中。/etc/sudoers.d 行得通

例如,这些配置行放在一个名为 等sudoers.dmy_config_file。:

Host_Alias MYSERVERHOST=192.168.1.135,localhost

# User that will execute Rsync with Sudo from a remote client
rsyncuser MYSERVERHOST=NOPASSWD:/usr/bin/rsync

为什么?/etc/sudoers 没有用?我上网搜了两天也不知道。我觉得这很晦涩难懂,很可怕。

下面是引用这篇有用的文章的内容。https:/askubuntu.coma931207。

不像 /etc/sudoers由于 etcsudoers.d 的内容在系统升级后仍然有效,所以最好在那里创建一个文件,而不是修改 etcsudoers。

对于任何配置文件的编辑,都要由 sudo 命令 visudo 是可取的。

$ sudo visudo -f /etc/sudoers.d/my_config_file
© www.soinside.com 2019 - 2024. All rights reserved.