Проброс сокетов для SSH-агента и для GPG-агента из Windows в WSL
Опишу вкратце. Потом, как будет настроение, дополню.
Проект состоит из двух скриптов, wsl-ssh-relay
и wsl-gpg-relay
Эти скрипты проверены лично автором, т.к. коммиты подписаны GPG-ключом через WSL и отправлены через ssh на git-сервер. :)
wsl-ssh-relay
Соответственно названию, пробрасывает ssh-agent. Имитирует запуск родного ssh-agent в командной строке, т.е. возвращает “скрипт” для eval.
Не позволяет запустить несколько “агентов”, в отличии от оригинального и не рандомизирует расположение сокета. Подразумевается, что сокет в WSL будет находиться всё время в одном месте, определяемом переменной SSH_AUTH_SOCK
или через параметр. По умолчанию, если ничего из этого не задано, создаёт сокет в ~/.ssh/S.ssh-agent
.
wsl-gpg-relay
Пробрасывает выбранные вами сокеты gpg-agent из пакета GPG4Win.
Принимает на вход наименование расположений сокетов, которые можно подсмотреть с помощью команды gpgconf --list-dirs
. Автоматически определяет расположение сокетов как в Windows, так и в Linux (WSL) с помощью gpgconf.
Для работы требует патченный npiperelay с поддержкой libassuan сокетов.
Способы автоматического запуска реле при запуске WSL
bashrc.d
В директории bashrc.d
вы найдёте подробное описание этого способа.
Он основывается на автоматическом вызове скрипта при старте интерпретатора в WSL.
Описание
Проброс сокетов для SSH-агента и для GPG-агента из Windows в WSL