Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible要求验证ssh指纹,无法ssh到新创建的ec2实例中_Ssh_Amazon Ec2_Ansible - Fatal编程技术网

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

Ansible要求验证ssh指纹,无法ssh到新创建的ec2实例中,ssh,amazon-ec2,ansible,Ssh,Amazon Ec2,Ansible,我正在创建ec2实例并使用ansible脚本配置它们。我用过 [ssh_connection] pipelining=true 在我的ansible.cfg文件中,但它仍然要求验证ssh指纹,当我键入yes并按enter键时,它无法登录到实例。 只是想让你们知道我使用的是ansible动态资源清册,因此我不会在主机文件中存储IP或dns。 任何帮助都将不胜感激 TIA我想你可以在这里找到答案: 基本上,运行ansible playbook时,需要使用以下参数: ANSIBLE_HOST_KEY

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

[ssh_connection]
pipelining=true
在我的ansible.cfg文件中,但它仍然要求验证ssh指纹,当我键入yes并按enter键时,它无法登录到实例。 只是想让你们知道我使用的是ansible动态资源清册,因此我不会在主机文件中存储IP或dns。 任何帮助都将不胜感激


TIA

我想你可以在这里找到答案:

基本上,运行ansible playbook时,需要使用以下参数:

ANSIBLE_HOST_KEY_CHECKING=False

确保添加了私钥(ssh添加私钥)

管道对身份验证没有任何影响-它将单个模块调用捆绑到一个更大的文件中,以便在建立连接后进行传输

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

您可以通过导出
ANSIBLE\u HOST\u KEY\u CHECKING=False
或在ANSIBLE.cfg中将其设置为:

[默认值]
主机密钥检查=错误

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

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

==

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

如果禁用主机密钥检查后仍存在连接问题,请编辑问题以手动将SSHing的输出添加到实例中,同时添加ansible play的输出,使用
-vvv
进行详细输出

故障排除时要查看的第一步:

  • 我连接和Ansible连接的区别是什么
  • 对于ec2实例,
    ansible\u ssh\u用户
    是否设置为正确的用户
  • ansible\u ssh\u private\u key\u文件是否与创建实例时分配给实例的密钥对的私有部分相同
  • 生成动态资源清册的对象是否正确设置了
    ansible\u ssh\u主机

您是否能够在没有问题的情况下手动ssh到ec2实例中?是的,我能够手动ssh。如果我删除了ansible.cfg文件,那么ansible会再次请求主机验证,但这次当我键入yes时,它允许我在hanks@nikobelia中添加host_key_checking=False,并从ansible.cfg中删除pipeline=true。它就像一个符咒,没问题!很高兴你把它整理好了:)