Ansible sudo 密码丢失

Posted

技术标签:

【中文标题】Ansible sudo 密码丢失【英文标题】:Ansible sudo password Missing 【发布时间】:2020-12-20 02:16:42 【问题描述】:

在 Ubuntu 18.04 上使用最新的 Ansible 2.9.12

已按照步骤设置无密码 ssh,我在服务器和节点机器上拥有相同的用户。

a@A:~> ssh-keygen -t rsa
a@A:~> ssh b@B mkdir -p .ssh
b@B's password: 
a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password: 
a@A:~> ssh b@B  <- this works

$ ansible -m ping all

尝试执行一个基本的 ansible 命令:

  $ ansible -b all -m apt -a "name=apache2 state=latest"
      192.168.37.129 | FAILED! => 
        "msg": "Missing sudo password"
    $ ansible -b all -m apt -a "name=apache2 state=latest" -kk
    SSH password:
    192.168.37.129 | FAILED! => 
        **"msg": "Missing sudo password"

我在这里缺少什么?我应该在节点机器中创建一个新的/不同的用户吗?

【问题讨论】:

您似乎混淆了sshsudo。您可能已经将 ssh 配置为无需密码即可工作,但在您的问题中没有显示您如何将 sudo` 配置为无需密码即可工作。 【参考方案1】:

在服务器和节点机器上都实现了这些步骤

$ sudo visudo #added these 2 lines
root        ALL=(ALL)        ALL
<user>  ALL=(ALL)        NOPASSWD:ALL

$ sudo nano /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes

$ sudo service sshd restart

那个错误消失了

【讨论】:

是的,您已通过编辑 suoders 文件将用户添加为无密码 sudo。此外,启用此功能的 `PermitRootLogin` 也不是一个好主意 @error404 - PermitRootLogin yes 是我在网上找到的指令 ktexperts.com/… 。我会尝试不使用它,看看它是否有效。有时只需要让它继续下去 configserverfirewall.com/debian-linux/… 您需要的是一个用户,您可以通过该用户 ssh 到远程服务器。用户应该启用无密码的 sudo - 这可以在 suoders 文件中完成 @error404 您提供的链接还显示PermitRootLogin yes 我已经提供了链接来了解修改PermitRootLogin yes的影响而不是这样做。

以上是关于Ansible sudo 密码丢失的主要内容,如果未能解决你的问题,请参考以下文章

linux系统下使用xampp 丢失mysql root密码xampp的初始密码为空

为 Ansible 指定 sudo 密码

linux系统下使用xampp 丢失mysql root密码 只能远程访问,本地无法连接数据库

系统同时无法使用root和sudo

ansible命令详解

ansible命令参数介绍