Azure DevOps 删除了 sha1 支持
Posted
技术标签:
【中文标题】Azure DevOps 删除了 sha1 支持【英文标题】:Azure DevOps removed sha1 support 【发布时间】:2020-06-05 17:45:50 【问题描述】:阅读 OpenSSH 8.2 的发行说明, https://www.openssh.com/txt/release-8.2 , rsa1 现在已被弃用并被认为已损坏。所以微软决定他们的系统不再支持它(我认为这是有道理的)。但是,它们仍然不支持 ecdsa 或 ed25519。
可以通过将其插入/home/<user>/.ssh/config
来重新启用 rsa 1:(如 Microsoft 论坛所述:https://developercommunity.visualstudio.com/content/problem/923455/cannot-interact-with-git-repos-with-openssh-82.html)
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
那么如何为 Azure DevOps 创建安全身份验证?
【问题讨论】:
出于某种原因,您正在混淆 SHA-1 和 RSA。你不能使用 SHA-2 和 RSA 吗? 【参考方案1】:Azure DevOps 目前不支持任何通过 SSH 连接的安全方法。
具有 SHA-1 的组 14 的大小为 2048 位,处于可接受强度的低端(相当于 112 位)。在这种情况下,SHA-1 不用于签名,而是用作生成密钥数据的 PRF。这并不是不安全的,当然使用非 SHA-1 算法会更好。第 1 组太弱而无法安全。
但是,Azure DevOps 不支持除带有 SHA-1 的 RSA 之外的任何东西,这绝对是不安全的。无法使用 SHA-2 进行 RSA,因为 Azure DevOps 不协商使用 SHA-2 所需的扩展,并且不支持其他密钥类型。
最好的办法是使用 HTTPS 访问 Azure DevOps,或者迁移到更安全的平台。但是请注意,您可能希望强制使用 TLS 1.2,因为 Azure DevOps 支持 TLS 1.0 和 1.1,这两者都被视为不安全且 deprecated。您可以通过将http.https://dev.azure.com.sslVersion
设置为tlsv1.2
来实现。
【讨论】:
如果您不想将 TLS 版本设置限制为 Azure DevOps Services(例如,当您也使用 Azure DevOps Server 或任何其他可能提供较低 TLS 版本的存储库时),请设置 @ 987654325@本身:git config --global http.sslVersion tlsv1.2
另外,设置的文档链接可能会有所帮助。 git-scm.com/docs/git-config#Documentation/…【参考方案2】:
截至昨天,已向 Azure DevOps 推出了一个修复程序,其中带有 sha256
选项 (diffie-hellman-group-exchange-sha256
) 和 sha1
,并且已经解决了该问题:
$ GIT_SSH_COMMAND="ssh -vvv" git pull
...
debug2: KEX algorithms: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256
...
debug1: kex: algorithm: diffie-hellman-group-exchange-sha256
【讨论】:
以上是关于Azure DevOps 删除了 sha1 支持的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps Server:使用Postman批量删除测试用例
Azure DevOps Server:使用Postman批量删除测试用例
azure devops 是不是支持 ios 自动代码签名?