ansible ssh权限被拒绝

时间:2015-04-13 01:04:19

标签: ssh ansible ssh-keys ansible-playbook

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

ssh user@ip_address

用户不是root用户。如果我试着ssh抛出ansible:

ansible-playbook -i hosts playbook.yml

使用ansible playbook:

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

和托管文件:

[web]
192.168.0.103

我收到了错误:

...
Permission denied (publickey,password)

问题是什么?

3 个答案:

答案 0 :(得分:9)

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使用的密钥

答案 1 :(得分:1)

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

答案 2 :(得分:0)

嗨,按照以下步骤播放剧本。默认情况下,ansible使用root播放。 ansible-playbook -i托管playbook.yml -u用户 如果仍然出现错误,请在下面运行并将输出粘贴到此处。 ansible-playbook -i托管playbook.yml -u用户-vvv