Por que o openssl e o ssh do Git for Windows relatam diferentes versões do OpenSSL?

1

No Windows Server 2008, eu tenho uma instalação do Git para Windows (Git-1.9.4-preview20140929).

Dentro de um shell bash, openssl version reporta versão 0.9.8zb , mas ssh -V reporta o Open SSL 1.0.1i .

Então, qual versão reflete com precisão a versão do OpenSSL que seria usada por um conector SSL no JBoss (via torquebox) em execução neste servidor?

Por que essas duas ferramentas, fornecidas dentro da mesma versão do Git para Windows, não têm versões correspondentes do OpenSSL?

    
por tjg 25.03.2015 / 18:01

1 resposta

2

Eu tenho uma instalação desatualizada (1.8.X) do Git para Windows 1 , então isso pode não estar atualizado, mas pelo que eu vejo na minha instalação, ssh.exe (que é um build do OpenSSH) depende de msys-crypto-X.Y.Z.dll , enquanto openssl.exe depende dessa biblioteca e msys-ssl-X.Y.Z.dll com essas X.Y.Z partes correspondentes ("0.9.8" no meu caso). Essas bibliotecas estão localizadas no mesmo diretório que os arquivos executáveis em questão: {gitInstallDir}/bin .

AFAIK, ao criar o GfW, o conjunto de compilações extrai e constrói exatamente uma cópia do OpenSSL, de modo que espera-se que ambas as reslições openssl.exe e ssh.exe usem o mesmo conjunto de bibliotecas fornecidas pelo OpenSSL. Daí eu sinto algum tipo de problema com %PATH% precedência.

O que eu verificaria:

  1. Executar

    type -a openssl
    

    e

    type -a ssh
    

    no seu prompt do Git Bash, e veja se ambos retornam algo começando com o prefixo "/ bin /" como a primeira (ou única) entrada de suas respectivas saídas. Se você vir algo diferente, como "/ c / whatever / other / path / openssl", você tem outra instância do programa openssl.exe disponível antes da cópia do Git for Windows graças ao seu %PATH% ; o mesmo se aplica a ssh.exe .

    Se sim, corrija o conteúdo de %PATH% .

  2. Obtenha uma cópia de depends.exe e execute-a com ssh.exe e openssl.exe de sua instalação do GfW para Veja em quais bibliotecas eles estão vinculados e onde eles estão localizados. Isso pode lhe dar a pista de onde procurar se algo parecer errado.

1 Não é "msysGit" mas sim "Git for Windows": "msysGit" é um nome muito antigo do projeto que é usado há algum tempo para se referir ao ambiente de desenvolvimento para o Git for Windows, enquanto o último termo é usado para se referir ao produto final: a porta do Windows do Git e um instalador binário que você usou para instalar o GfW. Por favor, mantenha essa terminologia para não aumentar a confusão.

    
por 25.03.2015 / 19:07

Tags