【问题标题】:ansible ssh permission deniedansible ssh 权限被拒绝
【发布时间】:2015-06-18 05:48:12
【问题描述】:

我已生成 ssh 密钥,并将其复制到远程服务器。当我尝试 ssh 到该服务器时,一切正常:

ssh user@ip_address

用户不是根用户。如果我尝试 ssh throw ansible:

ansible-playbook -i hosts playbook.yml

使用 ansible 剧本:

---
- hosts: web
  remote_user: user
  tasks:
    - name: test connection
      ping:

和主机文件:

[web]
192.168.0.103

我收到错误:

...
Permission denied (publickey,password)

有什么问题?

【问题讨论】:

  • 当你说“一切正常”时,它是否要求输入密码?使用-vvvv 重新运行并发布输出..

标签: ssh ansible ssh-keys ansible-playbook


【解决方案1】:

与您用于连接“网络”机器的密钥相比,Ansible 使用的密钥不同。

您可以通过

显式配置 ansible 以使用特定的私钥
private_key_file=/path/to/key_rsa

the docs 中所述,确保您使用ssh-copy-id -i /path/to/key_rsa.pub user@webmachine_ip_address 将ansible 使用的密钥授权给远程计算机中的远程用户

【讨论】:

  • 我也遇到了这个问题,对每个主机使用 ssh-copy-id 就可以了
  • /etc/ansible/ansible.cfg 中的配置是一个但不是唯一可以定义替代 ssh 密钥的地方。当我遇到这个问题时,原因是在清单文件中,其中定义了用于每个主机的各个密钥。
【解决方案2】:

在我的情况下,当主机更改它的指纹时,我在运行 ansible playbook 时遇到了类似的错误。我发现了这个,试图从命令行建立 ssh 连接。所以,在运行ssh-keygen -f "/root/.ssh/known_hosts" -R my_ip之后,这个问题就解决了。

【讨论】:

    【解决方案3】:

    Hi 运行如下播放。默认情况下,ansible 使用 root 播放。 ansible-playbook -i 托管 playbook.yml -u 用户 如果您仍然收到错误,请在下面运行并将输出粘贴到此处。 ansible-playbook -i hosts playbook.yml -u user -vvv

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2021-07-11
      • 2019-11-24
      • 2016-10-15
      • 2014-11-08
      • 2020-02-03
      相关资源
      最近更新 更多