ansible ssh权限被拒绝

ansible ssh权限被拒绝,ssh,ansible,ssh-keys,ansible-playbook,Ssh,Ansible,Ssh Keys,Ansible Playbook,我生成了ssh密钥,并将其复制到远程服务器。当我尝试使用ssh连接到该服务器时,一切正常: ssh user@ip_address 用户不是根用户。如果我尝试ssh抛出ansible: ansible-playbook -i hosts playbook.yml 使用ansible剧本: --- - hosts: web remote_user: user tasks: - name: test connection ping: 和主机文件: [web] 192

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

ssh user@ip_address
用户不是根用户。如果我尝试ssh抛出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)

有什么问题吗?

Ansible使用的密钥与您连接到“web”计算机时使用的密钥不同

您可以通过以下方式显式配置ansible以使用特定私钥:

private_key_file=/path/to/key_rsa

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

在我的例子中,当主机更改ansible playbook的指纹时,我在运行ansible playbook时遇到了类似的错误。我在尝试从命令行建立ssh连接时发现了这一点。因此,在运行
ssh-keygen-f”/root/.ssh/known_hosts“-R my_ip
之后,这个问题就解决了。

您好,请按以下方式运行该剧。默认情况下,ansible使用root进行播放。 ansible playbook-i托管playbook.yml-u用户 如果仍然出现错误,请在下面运行并将输出粘贴到此处。
ansible playbook-i托管playbook.yml-u user-vvv

当你说“一切正常”时,它是否需要密码?使用
-vvvv
重新运行并发布输出..我也遇到了这个问题,使用每个主机的ssh副本id做了一个棘手的操作/etc/ansible/ansible.cfg处的配置是一个但不是唯一可以定义备用ssh密钥的地方。当我遇到这个问题时,原因是在清单文件中定义了每个主机要使用的各个键。