Gpg-agent під Windows як агент SSH для git bash


2

gpg-agent має опції "--enable-ssh-support" і "--enable-putty-support", що дозволяє їй використовувати його як замінник для відомого ssh-агента.

Я витягую волосся, намагаючись зрозуміти, як саме роблять цю роботу у вікнах і git-bash. (Будь ласка, не пропонуйте мені використовувати putty, тому що у мене є багато скриптів та інших програм, які потребують роботи з git bash і openssh на моєму комп'ютері з Windows pc, включаючи PHPStorm тощо)

Моя перша спроба була enable-ssh-support лінія в C:\Users\[user]\AppData\Roaming\gnupg\gpg-agent.conf файл,

І export SSH_AUTH_SOCK=/c/users/[user]/AppData/Roaming/gnupg/S.gpg-agent.ssh лінія в /c/users/[user]/.bash_profile файл. (Також я створив змінну середовища Windows SSH_AUTH_SOCK з значенням C:\Users\[username]\AppData\Roaming\gnupg\S.gpg-agent.ssh )

У мене є секретний ключ GPG у ключі, з підключеннями з аутентифікацією та шифруванням.

і я додав клавішу підрозділу, що підтримує аутентифікацію C:\Users\[user]\AppData\Roaming\gnupg\sshcontrol файл.

З GnuPG 2.2.4 поставляється з --export-ssh-key варіант, так що мені не потрібно monkeysphere конвертувати ключ GPG у формат OpenSSH. тому я експортував свій відкритий ключ і розмістив його у файлі authorized_keys у віддаленому вікні Linux з правильними правами (тестувався з іншим комп'ютером за допомогою putty).

Тоді я виконав: gpg-connect-agent killagent /bye і gpg-connect-agent /bye в PowerShell (і він запустив gpg-агент, що працює у фоновому режимі і створив S.gpg-agent.ssh Файл SOCK).

Потім спробував ssh на сервер як звичайний спосіб.

І це дало мені помилку.

Потім я спробував включити підтримку putty ( enable-putty-support лінія в gpg-agent.conf дозволяє включити підтримку putty.

Також необхідно створити змінну середовища у вікнах GIT_SSH='C:\ProgramData\chocolatey\bin\PLINK.EXE' )

Потім я спробував використовувати OpenSSH, який поставляється з шоколадним менеджером пакетів.

Жоден з них не працював так, як очікувалося.

нарешті, я відмовився від усього і спробував підключити тільки за допомогою putty і gpg-agent. Я також видалив git-bash. Тоді я просто спробував використати GnuPG і Putty.

Я дозволив переадресацію агента в putty ssh - & gt; auth. Потім я спробував підключитися до сервера, але він все одно просить пароль. gpg-agent не пересилає ключ, але він виявляє gpg-agent як PAGEANT

Журнал подій замазкою:

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

Чи можете ви визначити мою проблему? У шпаклювальному журналі


Привіт Рон, можливо, ви повинні розділити це на декілька менших проблем. Ви все ще маєте проблему?
Vlastimil Ovčáčík

Я підозрюю, що причина, по якій вона не працює в git-bash, полягає в тому, як git-bash обробляє сокети, або як gpg-agent на Windows відкриває цей сокет. Тим не менш, я можу підтвердити, що це можливо (принаймні на сьогодні, коли я просто спробував) використовувати gpg-agent з PuTTY принаймні. Якщо ви хочете скоротити обсяг вашого питання, я з задоволенням надасть кроки, які я використовував.
demonbane

Відповіді:


2

Давайте візьмемо його крок за кроком.

1. Pageant has 0 SSH-2 keys

Це зараз блокує вас. Я припускаю, що ви журнал повідомляє про виступ, але ви фактично запускаєте gpg-agent у фоновому режимі. Можливо, вам слід перевірити це, перш ніж продовжити.

Переконайтеся, що gpg-agent завантажив ключ, необхідний для аутентифікації 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

Таким чином, ви можете підтвердити, що ваш gpg-agent має ключ, який ви очікуєте завантажений. Наступним кроком буде переконатися, що сервер запитує правильний ключ.

2. TBA

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.