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

SaltStack执行salt state.apply时SSH连接失败问题排查咨询

问题描述
  • Salt Master版本:3002.6,运行于RHEL7系统
  • Salt Minion版本:3002.9,运行于RHEL8系统
  • 已完成Salt密钥在Master端的成功生成,但执行salt state.apply时出现以下错误:

[DEBUG ] Trying to connect to: tcp://XX.XX.XX.XX:4506
[DEBUG ] salt.crypt.get_rsa_pub_key: Loading public key
[ERROR ] Sign-in attempt failed: {'enc': 'pub', 'pub_key': '-----BEGIN PUBLIC KEY-----

-----END PUBLIC KEY-----
', 'publish_port': 4505, 'aes':[DEBUG ] Closing AsyncZeroMQReqChannel instance

已完成的排查动作:

  • 验证网络、防火墙无异常,Master与Minion可直接SSH连接
  • 查阅官方故障排查文档,未发现异常
  • 参考社区讨论,得知Master版本需高于Minion,建议先升级Master

咨询问题:

  1. 该版本差异是否为报错的唯一原因?
  2. 除版本升级外还需排查哪些内容?
问题解答

1. 版本差异是否为唯一原因?

版本差异是导致该报错的核心原因,但并非唯一可能。SaltStack的版本兼容原则要求Master版本应不低于Minion版本,当Minion版本高于Master时,双方的加密协议、通信逻辑可能存在不兼容,会直接引发签名验证失败(如错误中显示的空公钥、登录失败)。不过,也存在其他因素叠加导致该问题的可能,需要进一步排查。

2. 除版本升级外的排查内容

  • Minion端公钥完整性检查:错误中显示的公钥内容为空(仅包含首尾标记),需验证Minion本地的公钥文件(默认路径/etc/salt/pki/minion/minion.pub)是否完整、无损坏。若文件为空或内容异常,需重新生成Minion密钥:
    salt-minion --gen-keys
    
    之后重新向Master提交密钥请求并接受。
  • Master端密钥存储目录权限:检查Master端密钥存储目录(/etc/salt/pki/master/minions/)的权限是否为salt:salt所有,权限设置是否为0700。权限异常会导致Master无法正确读取或存储Minion密钥,引发验证失败。
  • Minion配置文件中的Master地址准确性:确认Minion配置文件(/etc/salt/minion)中master字段填写的IP/域名是否正确,是否存在拼写错误或端口配置错误(默认通信端口为4506,发布端口为4505)。
  • 加密算法兼容性:部分RHEL系统可能存在默认加密算法差异,可尝试在Master和Minion的配置文件中强制指定兼容的加密算法,例如在/etc/salt/master和/etc/salt/minion中添加:
    crypto_backend: cryptography
    
    之后重启Salt服务。
  • Salt服务状态检查:确认Master和Minion的Salt服务是否正常运行,有无进程异常或日志报错。可通过以下命令重启服务:
    # Master端
    systemctl restart salt-master
    # Minion端
    systemctl restart salt-minion
    
    并查看服务日志(/var/log/salt/master、/var/log/salt/minion)获取更多细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:43:21