【问题标题】:Ansible sudo password MissingAnsible sudo 密码丢失
【发布时间】: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` 配置为无需密码即可工作。

标签: ssh ansible ssh-keys


【解决方案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的影响而不是这样做。
猜你喜欢
  • 2016-09-22
  • 2014-03-19
  • 1970-01-01
  • 2018-10-17
  • 2016-11-11
  • 1970-01-01
  • 2021-10-20
  • 2016-01-03
相关资源
最近更新 更多