首页
/ Git for Windows 2.46.1升级后SSH密钥配置变更解析

Git for Windows 2.46.1升级后SSH密钥配置变更解析

2025-05-27 00:51:15作者:董灵辛Dennis

Git for Windows最新2.46.1版本中,OpenSSH组件进行了重要安全升级,移除了对DSA算法的默认支持。这一变更导致部分用户在升级后遇到SSH连接问题,特别是那些在配置文件中显式指定了ssh-dss密钥类型的用户。

问题现象

升级到Git for Windows 2.46.1后,执行git pull等需要SSH连接的操作时,系统会报错:

/c/Users/Administrator/.ssh/config line 1: Bad key types 'ssh-dss,ssh-rsa'

错误信息明确指出配置文件中指定的ssh-dss密钥类型不被支持,导致SSH连接失败。

技术背景

OpenSSH在9.8p1版本中做出了重大安全调整:

  1. DSA算法淘汰计划:OpenSSH宣布将在2025年初完全移除对DSA签名算法的支持。本次更新已默认在编译时禁用DSA支持。

  2. 安全考量:DSA算法存在固有弱点:

    • 私钥长度限制为160位
    • 强制使用SHA1摘要算法
    • 估算安全强度仅相当于80位对称加密
  3. 历史原因:DSA曾是SSHv2协议中唯一强制实现的算法,主要是因为当时其他算法受专利保护。这一情况早已不复存在。

解决方案

用户需要修改SSH配置文件(~/.ssh/config),移除对ssh-dss的显式指定:

  1. 打开SSH配置文件
  2. 找到包含PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa的行
  3. 删除ssh-dss,部分,保留ssh-rsa
  4. 保存文件后,Git操作即可恢复正常

额外建议

Git for Windows 2.46.1还会提示另一个已弃用的配置项:

hint: core.useBuiltinFSMonitor=true is deprecated; please set core.fsmonitor=true instead

建议用户同时更新此配置,将core.useBuiltinFSMonitor替换为core.fsmonitor以获得更好的文件系统监控支持。

总结

此次变更反映了开源社区对安全性的持续重视。作为开发者,我们应当:

  • 及时关注所用工具的更新日志
  • 主动淘汰已知的不安全算法
  • 保持开发环境的配置与时俱进

对于仍需要临时使用旧版本的用户,可以暂时降级至Git for Windows 2.44.1,但建议尽快按照安全最佳实践更新配置。

登录后查看全文
热门项目推荐
相关项目推荐