【问题标题】:Change OpenSSH & OpenSSL versions in Git Bash (msysgit) on Windows在 Windows 上的 Git Bash (msysgit) 中更改 OpenSSH 和 OpenSSL 版本
【发布时间】:2014-01-19 08:43:32
【问题描述】:

Git Bash 中的 OpenSSH 和 OpenSSL 版本真的很旧。截至本文发布时,输入ssh -V 时,版本为:

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

我的问题是,我们如何升级这些(安全,不破坏任何东西等)? This article 有一个解决方案,但它只提到升级 OpenSSH,而不是 OpenSSL,尽管我相信您也可以找到要传输的 OpenSSL 文件。但是,它需要安装 Cygwin,这可能是不需要的。有一种方法可以下载 Cygwin 模块但不安装它们,但这似乎没有添加一些 DLL,如 cygcrypto.dll 和 cygwin1.dll。

即使这样可行,还有其他方法吗?您可以从 openssh.com/openssl.org 下载一些文件并更改几个配置文件吗?

【问题讨论】:

  • 我的 cygwin 在 ssh -V 返回:OpenSSH_6.4p1,OpenSSL 1.0.1e 2013 年 2 月 11 日
  • 是的,Cygwin 显然是最新的。我的问题是关于 Git Bash。
  • 是的,您可能很容易受到逆向 Heartbleed 以及过去七年中已修复的任何其他问题的影响。
  • Heartbleed 是新的,所以如果有的话,Git Bash 可能容易受到它的影响。但是,它很容易受到 Bash 错误的影响,并不是说任何人都可能会努力利用它来利用它。我不知道“反向心脏出血”。

标签: windows cygwin openssh git-bash


【解决方案1】:

更新: 这是我目前用来使 cygwin ssh 与 git bash 一起使用的文件列表。

从 cygwin 安装目录,将以下文件列表复制到您的 git bash 安装目录。

请注意,如果您已经配置了 ~/.ssh/config,那么您需要从 cygwin 设置正确的权限才能使 ssh 正常工作。

cygasn1-8.dll cygattr-1.dll cygbz2-1.dll cygcom_err-2.dll cygcrypt-0.dll cygcrypto-1.0.0.dll cygedit-0.dll cygform-10.dll cygformw-10.dll cyggcc_s-1.dll cyggmp-10.dll cyggmp-3.dll cyggssapi-3.dll cygheimbase-1.dll cygheimntlm-0.dll cyghistory7.dll cyghx509-5.dll cygiconv-2.dll cygintl-8.dll cygkafs-0.dll cygkrb5-26.dll cyglsa.dll cyglsa64.dll cyglua-5.1.dll cyglzma-5.dll cygmagic-1.dll cygmenu-10.dll cygmenuw-10.dll cygmp-3.dll cygmpfr-4.dll cygncurses++-10.dll cygncurses++w-10.dll cygncurses-10.dll cygncursesw-10.dll cygpanel-10.dll cygpanelw-10.dll cygpcre-0.dll cygpcre-1.dll cygpopt-0.dll cygreadline7.dll cygroken-18.dll cygsqlite3-0.dll cygssl-1.0.0.dll cygssp-0.dll cygstdc++-6.dll cygtic-10.dll cygticw-10.dll cygwin1.dll cygwind-0.dll cygwrap-0.dll cygz.dll ssh-add.exe ssh-agent.exe ssh-copy-id ssh-主机配置 ssh-keygen.exe ssh-keyscan.exe ssh-用户配置 ssh.exe ssh 文件

【讨论】:

  • 谢谢!我现在没有耐心或精力来测试它,但据我记得上次尝试这样做时,Git Bash 一直在抱怨其他不存在的文件(在其存储库中;它们存在于 Cygwin 中)。这就是我问这个问题的原因,因为看起来您需要传输的文件比提到的博客文章多。
【解决方案2】:

注意:最后一个 Git for Windows releaseGit 2.12.1,2017 年 3 月)现在使用更新的 OpenSSL 版本。
Windows 端口现在使用 OpenSSL 的 SHA-1 例程实现

参见Jeff Hostetler (jeffhostetler)commit 2cfc70f(2017 年 2 月 9 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit 033328a,2017 年 3 月 13 日)

mingw:使用 OpenSSL 的 SHA-1 例程

使用 OpenSSL 的 SHA-1 例程而不是内置的块 sha1 例程。
这提高了英特尔处理器上 SHA1 操作的性能。

OpenSSL 1.0.2 取得了相当大的性能改进,并且 支持英特尔硬件加速功能。

C:\tools\gits\latest\usr\bin>openssl version
OpenSSL 1.0.2k  26 Jan 2017

见:

是的,OpenSSH 也是更新的:

C:\tools\gits\latest\usr\bin>ssh -V
OpenSSH_7.3p1, OpenSSL 1.0.2k  26 Jan 2017

【讨论】:

  • 谢谢。到目前为止,我已经接受了 Git Bash 没有这两个的最新版本,当我使用它时(在工作中连接到我们的 Linux 服务器,在家里我有一个 Linux)我只是使用它& 继续。不过,如果他们已经更新,那就太好了。
  • @trysis “到目前为止,我已经接受了 Git Bash 没有这两个的最新版本”:它实际上有,因为 Git 2.5+(2015 年 8 月,其中维护者被微软聘用:stackoverflow.com/a/40059664/6309)。最新的适用于 Windows 的 Git 具有 非常 个最新版本。
  • 哦,我想我没有及时更新。我最近让我公司的 Windows 维护人员在一两年内第一次更新了我的 Git Bash。
猜你喜欢
  • 2016-01-03
  • 1970-01-01
  • 2011-06-11
  • 2021-06-05
  • 2013-12-08
  • 2016-02-26
  • 1970-01-01
  • 2011-04-09
  • 2014-08-23
相关资源
最近更新 更多