如何解决Ansible警告主机密钥已更改的问题

35次阅读
没有评论

问题描述

在使用Ansible时遇到了一个问题,即使他已经采取了多种措施来防止警告,但仍然收到了主机密钥已更改的警告。他使用Vagrant创建了虚拟机,然后想使用ansible命令进行一些操作。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在Ansible的inventory文件中添加以下配置:

vagrant-local:
  ansible_host: 192.168.33.10
  ansible_user: vagrant
  ansible_ssh_private_key_file: .vagrant/machines/default/virtualbox/private_key
  UserKnownHostsFile: /dev/null
  StrictHostKeyChecking: no
  ansible_python_interpreter: /usr/bin/python3

在上面的示例中,我们在inventory文件中定义了一个名为vagrant-local的主机,并添加了一些配置。其中,UserKnownHostsFile属性将检查主机指纹的文件设置为空文件(替换了~/.ssh/known_hosts中的检查),StrictHostKeyChecking属性允许ssh在不需要用户确认的情况下连接到vagrant主机。

方案2

请注意以下操作注意版本差异及修改前做好备份。
在inventory文件中添加以下配置:

ansible_ssh_common_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"

这个配置将忽略主机检查,并将/dev/null设置为已知主机文件。
请注意,以上两种方案都是为了忽略主机检查和避免警告。这样做可能会带来一定的安全风险,请确保在安全环境中使用。

正文完