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

OpenSSH升级后Ansible配置文件中scp_extra_args不生效求助

解决Ansible配置文件scp_extra_args="-O"不生效的问题

问题根源

Ansible 2.9.x对配置文件格式要求严格,scp_extra_args必须放在[defaults]配置段内,若直接写在配置文件根目录(未归属任何段),Ansible会忽略该参数。另外,配置里给-O加引号属于多余操作,会导致参数被当成带引号的字符串传递,scp无法识别。

修复步骤

  1. 修正ansible.cfg的配置结构
    打开/etc/ansible/ansible.cfg,将scp_extra_args移入[defaults]块,正确格式如下:

    [defaults]
    scp_extra_args = -O
    

    注意去掉-O外层的引号,配置文件中不需要额外引号包裹参数。

  2. 验证配置是否成功加载
    执行以下命令,确认Ansible已正确读取该参数:

    ansible-config dump | grep scp_extra_args
    

    若输出显示scp_extra_args = -O,说明配置已生效。

  3. 额外排查点(若上述步骤无效)

    • 检查是否存在优先级更高的配置文件:Ansible读取配置的优先级为ANSIBLE_CONFIG环境变量指定文件 > 当前目录ansible.cfg > ~/.ansible.cfg > /etc/ansible/ansible.cfg。若其他位置的配置文件设置了相同参数,会覆盖全局配置,需对应调整。
    • 确认虚拟环境的配置路径:由于使用Python虚拟环境,需确保修改的/etc/ansible/ansible.cfg是该环境实际读取的配置文件。若不确定,可直接在虚拟环境根目录创建本地ansible.cfg并写入正确配置。

补充说明

OpenSSH 9.0+默认禁用旧版SCP协议(改用SFTP),但Ansible 2.9.x不支持新的SCP交互逻辑,因此必须通过-O强制使用旧协议,否则会回退到SSH隧道传输。命令行和groupvars能生效,是因为这些方式的参数优先级高于格式错误的全局配置文件,修正配置格式后即可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:07:03