macOS系统运行Ansible报错需安装sshpass的可行解决方案问询
你之前修改的host_key_checking参数作用是跳过SSH主机公钥校验,和本次报错没有关联。本次报错是因为你在inventory里配置了明文SSH密码,Ansible默认调用的ssh客户端本身不支持明文密码参数传参,需要依赖sshpass工具做密码注入。
优先推荐方案:改用SSH密钥认证(无需安装任何工具)
这个方案安全性最高,操作也简单,完全规避sshpass依赖:
- 执行密钥分发命令:
ssh-copy-id 树莓派用户名@192.168.x.x,按提示输入一次树莓派SSH密码即可完成公钥上传 - 删除inventory.txt中
ansible_ssh_pass=<password>参数 - 重新运行playbook即可正常执行,不会触发sshpass相关报错
备选方案1:仍要使用密码登录的话安装sshpass
macOS的官方homebrew源因为安全考量没有收录sshpass,可以用第三方维护的tap源直接安装,无需手动编译:
执行命令:brew install hudochenkov/sshpass/sshpass
安装完成后直接运行playbook即可。
不需要额外使用Virtualbox
用虚拟机跑Linux再装Ansible属于冗余操作,上述两种方案都可以在你当前的macOS系统上直接解决问题,操作成本远低于额外运行虚拟机。
内容的提问来源于stack exchange,提问作者Wunderbread
相关产品推荐
相关产品推荐

