拒绝 Ansible SSH 权限



我生成了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 使用的密钥不同。

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

private_key_file=/path/to/key_rsa

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

就我而言,当主机更改指纹时,我在运行 ansible 剧本时遇到了类似的错误。我发现了这一点,试图从命令行建立 ssh 连接。因此,运行ssh-keygen -f "/root/.ssh/known_hosts" -R my_ip后,此问题得到了解决。

嗨,

按如下方式运行播放。 默认情况下,Ansible 使用 root 进行播放。ansible-playbook -i hosts playbook.yml -u user如果仍然收到错误,请在下面运行并将输出粘贴到此处。ansible-playbook -i hosts playbook.yml -u user -vvv<</p>

div class="one_answers">

您可以检查是否有授权保存在 IP 192.168.0.103 上 cat /home/ubuntu/.ssh/authorized_keys如果没有 IP,则使用命令将 id_rsa.pub 复制到authorized_keys

vim /home/ubuntu/.ssh/authorized_keys

最新更新