| FAILED! => {
"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host."
}
怎么解决?
-
首先,使用ssh连接到目标主机,并接受指纹。命令如下:
ssh <username>@<target_host>
当提示是否接受该主机的指纹时,输入yes。
-
然后,将目标主机的指纹添加到known_hosts文件中。可以使用以下命令实现:
ssh-keyscan -H <target_host> >> ~/.ssh/known_hosts
-
确保known_hosts文件位于正确的位置(通常在用户的.ssh目录下),然后再次尝试连接到目标主机。
如果你想使用SSH密钥认证代替SSH密码认证,可以按照以下步骤操作:
-
生成SSH密钥对。在本地机器上执行以下命令:
ssh-keygen -t rsa
这将生成一个RSA密钥对,默认会保存在~/.ssh目录下。
-
将公钥添加到目标主机的authorized_keys文件中。你可以使用以下命令执行:
ssh-copy-id <username>@<target_host>
输入密码后,你的公钥将被添加到目标主机的authorized_keys文件中。
-
再次连接到目标主机时,SSH将使用密钥进行身份验证,而不需要密码。
最后可以编辑 vi /etc/ansible/ansible.cfg
消除注释
结果