git - Azure DevOps 删除了 sha1 支持

标签 git azure rsa openssh ssh-keygen

阅读 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 的安全身份验证呢?

最佳答案

Azure DevOps 目前不支持任何通过 SSH 连接的安全方法。

采用 SHA-1 的组 14 大小为 2048 位,处于可接受强度的下限(112 位等效值)。在这种情况下,SHA-1不用于签名,而是作为生成 key 数据的PRF。这并非不安全,尽管使用非 SHA-1 算法当然会更好。第 1 组太弱而无法保证安全。

但是,Azure DevOps 缺乏对除 RSA 和 SHA-1 之外的任何支持,这绝对是不安全的。无法使用 SHA-2 进行 RSA,因为 Azure DevOps 不会协商使用 SHA-2 所需的扩展,并且不支持其他 key 类型。

最好的选择是使用 HTTPS 访问 Azure DevOps,或者迁移到更安全的平台。但请注意,您可能想要强制使用 TLS 1.2,因为 Azure DevOps 支持 TLS 1.0 和 1.1,这两者都被认为是不安全的,并且 deprecated 。您可以通过将 http.https://dev.azure.com.sslVersion 设置为 tlsv1.2 来实现此目的。

关于git - Azure DevOps 删除了 sha1 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60336224/

相关文章:

azure - 非分区流分析作业输出

项目根目录的 Git 状态显示子模块更改,但在子模块中没有可用的

git - 如何 pull 源代码树中的远程分支

git - 禁用 Git 重命名检测

java - 如何使用模数和指数/公钥快速破解 Java 中大量数字的 RSA 加密

c - 如何使用 libssl 对文件进行签名?

java - 如何在 Java 中验证公钥和私钥对

git - `git config` 和 `git push --set-upstream` 有什么区别

Azure 逻辑应用 - 服务总线 - 始终跳过接收消息操作

javascript - Angular 网站部署问题