可通过SSH连接到Cisco IOS,带有;“身份验证失败”;消息

可通过SSH连接到Cisco IOS,带有;“身份验证失败”;消息,ssh,ansible,cisco,Ssh,Ansible,Cisco,这是一个非常简单的案例,它让我很困扰 这是ansible.cfg的内容: [defaults] transport = paramiko hostfile = ./hosts host_key_checking = False timeout = 5 主机的内容,都有一个名为“cisco”的用户和密码“cisco” 主机变量文件(R1)与R2、R3等类似,只是IP地址不同: --- ansible_ssh_host: 10.10.10.1 ansible_ssh_user: cisco ans

这是一个非常简单的案例,它让我很困扰

这是ansible.cfg的内容:

[defaults]
transport = paramiko
hostfile = ./hosts
host_key_checking = False
timeout = 5
主机的内容,都有一个名为“cisco”的用户和密码“cisco”

主机变量文件(R1)与R2、R3等类似,只是IP地址不同:

---
ansible_ssh_host: 10.10.10.1
ansible_ssh_user: cisco
ansible_ssh_pass: cisco
我可以通过linux成功地SSH到这些路由器,但当我使用ansible时,它导致“身份验证失败”:

我用一些单行ansible命令测试了连接性,即使手动输入用户名和密码,仍然会出现错误,例如:

> ansible routers -m raw
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.    

> ansible routers -u cisco -m raw
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.

> ansible routers -u cisco -m raw -k
SSH password:
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.
我怎样才能解决这个问题?非常感谢您的帮助。

Python解释器可以这样使用:

connect(主机名,端口=22,用户名=None,密码=None,pkey=None,key\u文件名=None,超时=None,allow\u agent=True,look\u key=True,compress=False,sock=None,gss\u auth=False,gss\u kex=False,gss\u deleg\u creds=True,gss\u host=None,banner\u timeout=None,auth\u timeout=None)

[……]

查找密钥(bool)–设置为False可禁用在
~/.ssh/


我最终通过检查完整日志(paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)找到了答案,如果公钥身份验证失败,paramiko将完成连接,而不是继续尝试密码。因此,在使用paramiko时,方法“connect()中的参数“look_for_keys”(查找密钥)必须设置为False在设置look_for_keys=False之后,一切都很好。你能回答自己的问题时稍微详细一点,这样对别人会有帮助吗。感谢你的澄清,Arbab Nazar并不是在寻找答案;他们是为了子孙后代的利益而要求清楚地写出来,这是so的目标。为了更好的clar,我尝试调整这个答案如果您能补充更多的解释,我们将不胜感激。
fatal: [R1] => {'msg': 'FAILED: Authentication failed.', 'failed': True}
fatal: [R2] => {'msg': 'FAILED: Authentication failed.', 'failed': True}
...
> ansible routers -m raw
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.    

> ansible routers -u cisco -m raw
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.

> ansible routers -u cisco -m raw -k
SSH password:
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.