You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cygwin中为Ansible命令传递ssh-common-args参数

解决Ansible SSH主机密钥类型不匹配问题

问题原因

你遇到的错误是因为目标服务器仅支持ssh-rsa密钥类型,而当前SSH客户端默认禁用了该类型,导致密钥协商失败。手动SSH命令通过添加-o HostKeyAlgorithms=+ssh-rsa和-o PubkeyAcceptedKeyTypes=+ssh-rsa参数解决了问题,但你的Ansible命令错误地在--ssh-common-args中包含了user1@server——这个参数仅用于传递SSH的配置选项,用户和目标地址由Ansible的--user参数或inventory配置自动处理,不需要在这里重复指定。

正确的Ansible命令

移除--ssh-common-args里的user1@server,仅保留SSH选项参数即可:

ansible-playbook -i '/cygdrive/c/Test/repository/inventory/envk' -e configure_ldap test.yaml -k -K --ssh-common-args='-o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa' --user user1

持久化配置方案(无需每次加参数)

如果不想每次运行Ansible都手动添加参数,可以通过以下两种方式配置:

方式1:修改Ansible配置文件

在项目目录的ansible.cfg或用户根目录的~/.ansible.cfg中添加:

[ssh_connection]
ssh_args = -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa

方式2:修改SSH客户端配置

在Cygwin用户目录的~/.ssh/config中添加目标服务器的专属配置:

Host server
    HostName server
    User user1
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa

若需适配多台服务器,可替换Host server为Host *来匹配所有主机。

内容的提问来源于stack exchange,提问作者Anitha M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:40:34