我正在尝试使用ansible将已知主机添加到known_hosts文件中
vagrant@jedi:/vagrant$ ansible web -m known_hosts -a "name=web state=present" paramiko: The authenticity of host 'web' can't be established. The ssh-rsa key fingerprint is afb8cf4885468badb1a7b8afc16ac211. Are you sure you want to continue connecting (yes/no)?
我一直得到上面的提示.
我以为这个模块照顾好了吗?否则我应该进行密钥扫描web
并将其添加到known_hosts文件中.
我做错了什么或误解了什么?
@udondan解释得非常好.另一个说明:
这是Ansible的默认行为.它将始终检查主机密钥.如果Ansible从未连接到该主机,则会出现此提示.这就是为什么在没有known_hosts
先接受密钥的情况下无法调用模块的原因.
如果这不合适,您可以host_key_checking=False
启用ansible.cfg
.
更安全的方法
最好的方法是设置此变量:export ANSIBLE_HOST_KEY_CHECKING=False
在部署新服务器时,将其删除.unset ANSIBLE_HOST_KEY_CHECKING
主机密钥检查它是一个重要的安全功能.
了解有关host_key_checking的更多信息.