SSH错误:Ansible中的权限被拒绝(公钥,密码)

Raj*_*pta 21 ssh ansible

我是ansible的新手,我正在努力实现它.我尝试了互联网上存在的所有可能的方式以及与之相关的所有问题,但我仍然无法解决错误.请帮我.

我在Macbook上安装了ansible playbook.我创建了一个IP为10.4.1.141且主机IP为10.4.1.140的VM

我尝试使用主机通过ssh连接到我的VM,它通过以下命令连接:

ssh user@10.4.1.141
Run Code Online (Sandbox Code Playgroud)

我得到了shell访问权限.这意味着我的ssh工作正常.

现在我为Ansible尝试了以下命令:

ansible all -m ping
Run Code Online (Sandbox Code Playgroud)

而且内容/etc/ansible/host10.4.1.141

然后它显示以下错误:

10.4.1.141 | FAILED => SSH错误:权限被拒绝(公钥,密码).

连接到10.4.1.141:22时有时使用-vvvv重新运行命令很有用,它会打印SSH调试输出以帮助诊断问题.

然后我尝试在主机上的config文件.ssh/夹中创建文件,但错误仍然是相同的.

config文件的内容是:

  IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

这是我的私钥的路径.

然后我运行相同的命令ansible all -m ping,并再次得到相同的错误.

当我尝试另一个命令

ansible all -m ping -u user --ask-pass
Run Code Online (Sandbox Code Playgroud)

然后它询问了SSH密码,我给了它(该死密码是否正确),但是我收到了这个错误:

10.4.1.141 | FAILED => FAILED:身份验证失败.

这是使用的日志-vvvv:

/etc/ansible/host

我仍然无法弄清楚问题是什么.在完成我的所有研究后,这是我最后的选择.我所指的最后一个链接是https://valdhaus.co/writings/ansible-mac-osx/

请帮帮我,我被卡住了.提前致谢!

Raj*_*pta 30

我解决了这个问题.问题出在我的身上/etc/ansible/hosts.

写的内容/etc/ansible/hosts10.4.1.141.但是当我把它更改rajat@10.4.1.141为时,问题就得到解决了.

感谢大家的支持,并通过评论帮助我更清楚地了解问题.

  • 我认为在这种情况下,正确的解决方案是将“ remote_user = rajat”放入ansible.cfg。 (3认同)

beb*_*ebs 5

如果您使用以下方式登录ssh user@10.4.1.141

选项1

然后确保在您的主机文件里面etc\ansible有:

[server01]
10.4.1.141
Run Code Online (Sandbox Code Playgroud)

然后在etc\ansible运行中: ansible all -m ping -u user --ask-pass

选项2

如果要登录而不输入ssh password,则在主机文件中etc\ansible添加:

[server01]
10.4.1.141 ansible_ssh_pass=xxx ansible_ssh_user=user
Run Code Online (Sandbox Code Playgroud)

然后在etc\ansible运行中: ansible all -m ping

对我来说,它有两种作用。


max*_*sam 5

我的情况是我的 .ssh 中有多个私钥。

这是我通过告诉 ansible 使用某个私钥来修复它的方法

ansible-playbook -i ../../inventory.ini --private-key=~/.ssh/id_rsa_ansiadmin update.yml 
Run Code Online (Sandbox Code Playgroud)