Gpg-agent no Windows como Agente SSH para git bash


2

O gpg-agent tem opções "--enable-ssh-support" e "--enable-putty-support" que permitem usá-lo como substituto para o conhecido agente ssh.

Eu tenho puxado meu cabelo para fora tentando descobrir exatamente como fazer isso funcionar no windows e no git-bash. (Por favor, não me sugira usar o putty porque eu tenho muitos scripts e outros programas que precisam ser trabalhados com o git bash e openssh na minha máquina windows pc, incluindo PHPStorm etc)

Minha primeira tentativa foi ter enable-ssh-support linha em C:\Users\[user]\AppData\Roaming\gnupg\gpg-agent.conf Arquivo,

E export SSH_AUTH_SOCK=/c/users/[user]/AppData/Roaming/gnupg/S.gpg-agent.ssh linha em /c/users/[user]/.bash_profile Arquivo. (também criei uma variável de ambiente do windows SSH_AUTH_SOCK com o valor C:\Users\[username]\AppData\Roaming\gnupg\S.gpg-agent.ssh )

Eu tenho minha chave secreta de GPG no conjunto de chaves, com subchaves habilitadas para autenticação e criptografia.

e eu adicionei o keygrip da subchave habilitada para autenticação no C:\Users\[user]\AppData\Roaming\gnupg\sshcontrol Arquivo.

Já que o GnuPG 2.2.4 vem com --export-ssh-key opção, então eu não preciso monkeysphere para converter a chave GPG para o formato OpenSSH. então eu exportei minha chave pública e coloquei no arquivo authorized_keys em uma caixa Linux remota com permissões corretas (testado com outro computador usando putty).

Então eu executei: gpg-connect-agent killagent /bye e gpg-connect-agent /bye no PowerShell (e ele começou o gpg-agent rodando em background e criou o S.gpg-agent.ssh Arquivo SOCK).

Em seguida, tentou ssh no servidor como o caminho normal.

E isso me deu um erro.

Então eu tentei ativar o suporte putty ( enable-putty-support linha em gpg-agent.conf permite que você ative o suporte a massa.

Além disso, você precisa criar uma variável de ambiente no Windows GIT_SSH='C:\ProgramData\chocolatey\bin\PLINK.EXE' )

Então eu tentei usar o OpenSSH que vem com o gerenciador de pacotes chocolatey também.

Nenhum deles funcionou como esperado.

finalmente, desisti de tudo e tentei me conectar usando apenas putty e gpg-agent. Eu desinstalei o git-bash também. Então eu apenas tentei usar o GnuPG e o Putty.

Eu permiti o encaminhamento de agentes em putty ssh - & gt; auth. então tentei me conectar ao servidor, mas ainda pedindo a senha. O gpg-agent não encaminha a chave, mas detecta gpg-agent Como PAGEANT

Log de eventos no putty:

2018-02-10 16:48:51 Connecting to xx.xxx.xxx.xx port 22 2018-02-10 16:48:51 We claim version: SSH-2.0-PuTTY_Release_0.70 2018-02-10 16:48:52 Server version: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 2018-02-10 16:48:52 We believe remote version has SSH-2 channel request bug 2018-02-10 16:48:52 Using SSH protocol version 2 2018-02-10 16:48:52 Doing ECDH key exchange with curve Curve25519 and hash SHA-256 2018-02-10 16:48:53 Server also has ecdsa-sha2-nistp256/ssh-dss/ssh-rsa host keys, but we don't know any of them 2018-02-10 16:48:53 Host key fingerprint is: 2018-02-10 16:48:53 ssh-ed25519 256 1f:7b:5d:c4:b4:ae:5d:81:72:da:1d:c8:b2:cc:67:7b 2018-02-10 16:48:53 Initialised AES-256 SDCTR client->server encryption 2018-02-10 16:48:53 Initialised HMAC-SHA-256 client->server MAC algorithm 2018-02-10 16:48:53 Initialised AES-256 SDCTR server->client encryption 2018-02-10 16:48:53 Initialised HMAC-SHA-256 server->client MAC algorithm 2018-02-10 16:49:07 Pageant is running. Requesting keys. 2018-02-10 16:49:07 Pageant has 0 SSH-2 keys

Você pode identificar o meu problema? Em putty log


Oi Ron, talvez você devesse dividir isso em múltiplos problemas menores. Você ainda está tendo o problema?
Vlastimil Ovčáčík

Eu suspeito que o motivo pelo qual ele não funciona no git-bash seja devido a como o git-bash manipula sockets, ou como o gpg-agent no Windows expõe esse socket. No entanto, posso confirmar que é possível (pelo menos a partir de hoje, quando eu tentei) usar o gpg-agent com o PuTTY pelo menos. Se você deseja restringir o escopo de sua pergunta, ficarei feliz em fornecer as etapas que usei.
demonbane

Respostas:


2

Vamos dar um passo a passo.

1 Pageant has 0 SSH-2 keys

Isso está bloqueando você agora. Eu suponho que você registra o relatório de relatórios, mas na verdade você está executando o gpg-agent em segundo plano. Você pode querer verificar isso antes de continuar.

Vamos nos certificar de que o agente gpg tenha carregado a chave que você precisa para a autenticação ssh.

> gpg --version
gpg (GnuPG) 2.1.21
...

> gpg -k --with-keygrip
...
sub   rsa4096/0x0123456789ABCDEF 2018-01-01 [A] [expires: 2019-01-01]
      Keygrip = 0123456789ABCDEF0123456789ABCDEF01234567
...

> gpg-connect-agent "keyinfo --list" /bye
...
S KEYINFO 0123456789ABCDEF0123456789ABCDEF01234567 T xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENPGP.3 - - - - -
...
OK

Desta forma você pode confirmar que o seu gpg-agent tem a chave que você está esperando carregar. O próximo passo seria garantir que o servidor esteja solicitando a chave apropriada.

2 TBA

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.