如何在Cygwin环境下配置Ansible调用Pageant加载的带密码保护密钥
解决步骤
1. 优先处理主机密钥验证报错
你收到的报错核心提示为:
1.1.1.1 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Host key verification failed.",
"unreachable": true
}
首先处理该报错,可选两种方案:
- 临时测试方案:执行Ansible命令时追加参数跳过主机密钥校验,示例命令如下:
ansible all -i 1.1.1.1, -m ping --ssh-common-args='-o StrictHostKeyChecking=no' - 永久生效方案:编辑Ansible配置文件
ansible.cfg(默认路径为/etc/ansible/ansible.cfg,也可放在当前执行命令的目录下),添加如下配置:
[defaults] host_key_checking = False
追求更高安全性不需要关闭校验的话,可手动执行
ssh-keyscan 1.1.1.1 >> ~/.ssh/known_hosts将目标主机公钥加入信任列表即可。
2. 适配Cygwin与Windows Pageant进程
你猜测的Cygwin无法识别宿主Pageant进程的问题确实存在,需要安装桥接工具完成适配:
- 打开Cygwin安装器,搜索并安装
ssh-pageant工具包 - 编辑你使用的Shell配置文件(比如
~/.bashrc、~/.zshrc,根据你实际使用的终端类型选择),在末尾添加如下内容:
eval $(/usr/bin/ssh-pageant -r -a "/tmp/.ssh-pageant-$USERNAME")
- 重载配置文件生效:
source ~/.bashrc(替换为你修改的对应配置文件名),执行ssh-add -l验证,能输出Pageant中加载的密钥指纹即为适配成功。
3. 验证连通性
所有配置完成后,先在Cygwin终端直接执行SSH命令测试连通:ssh 你的用户名@1.1.1.1,如果可以直接登录不需要输入密码,再运行Ansible命令即可正常执行。
内容的提问来源于stack exchange,提问作者Dani
相关产品推荐
相关产品推荐

