Ansible要求验证ssh指纹并且无法ssh到新创建的ec2实例中

时间:2015-09-02 10:21:57

标签: ssh amazon-ec2 ansible

我正在创建ec2实例并使用ansible脚本配置它们。我用过

[ssh_connection]
pipelining=true

在我的ansible.cfg文件中,但它仍然要求验证ssh指纹,当我输入yes并按回车键时,它无法登录到实例。 只是为了让您知道我正在使用ansible动态库存,因此我没有在主机文件中存储IP或DNS。 任何帮助将不胜感激。

TIA

2 个答案:

答案 0 :(得分:2)

流水线操作对身份验证没有任何影响 - 它会将单个模块调用捆绑成一个更大的文件,以便在建立连接后进行传输。

为了不停止执行并提示您接受SSH密钥,您需要禁用严格的主机密钥检查,而不是启用流水线。

您可以通过导出ANSIBLE_HOST_KEY_CHECKING=False或在ansible.cfg中将其设置为:

来设置

[defaults] host_key_checking=False

后者可能更适合您的用例,因为它是持久的。

请注意,尽管这是一个处理ssh连接的设置,但它位于[defaults]部分,而不是[ssh_connection]部分。

==

当您键入yes时无法登录,这似乎可能不是您唯一的问题,但您没有提供足够的信息来解决其余问题。

如果在禁用主机密钥检查后仍然存在连接问题,请编辑问题以手动将SSH输出添加到实例中,同时将-vvv的ansible游戏输出添加到详细输出中。< / p>

排除故障时的第一步:

  • 我连接和Ansible之间有什么区别?
  • 是否为ec2实例的ansible_ssh_user设置了正确的用户?
  • ansible_ssh_private_key_file是否与您在创建时分配实例的密钥对的私有部分相同?
  • 生成动态广告资源的是否正确设置了ansible_ssh_host

答案 1 :(得分:0)

我认为你可以在这里找到答案:ansible ssh prompt known_hosts issue

基本上,当你运行ansible-playbook时,你需要使用参数:

ANSIBLE_HOST_KEY_CHECKING=False

确保添加了私钥(ssh-add your_private_key)。