авторизация SSH в Git и TortoiseGit
- Алик Ким
- 4 нояб. 2023 г.
- 2 мин. чтения
Обновлено: 29 янв. 2024 г.
работаю с Git через Tortoise git.
к своему, получается, стыду, всегда указывал файл ключа для клонируемых репозиториев явным образом:

а тут понадобилось поработать через командную строку (git-subtree). и пришлось поразбираться, как должна адекватная авторизация в GIT выглядеть.
в итоге:
- git работает через SSH
- в стек приложений SSH-клиента входит SSH-агент. в нем мы регистрируем файлы с приватными ключами (публичные ключи мы регистрируем на стороне git-репозитория, например, на github)
- когда Git обращается к репозиторию (например, клонирует его) по SSH - он запрашивает у SSH-агента все зарегистрированные ключи и один за одним пытается авторизоваться через них, пока один из них не подойдет.
- по умолчанию на Windows вместе с Git устанавливается ssh-agent.exe (или чтото вроде того) - SSH-агент, который работает через командную строку
- Tortoise git устанавливает вместе с собой стек приложений Putty - я так понял, это - Windows-SSH-клиент + набор GUIшных утилит для работы с SSH-ключами: PuttyGen - генерация ключей, Pageant - вот, GUI-шный ssh-агент/менеджер ключей

- в ходе установки Tortoise спрашивает/предлагает использовать в качестве SSH-агента (менеджера ключей) Peageant, так что через Tortoise ключи отсбда подхватываются сразу.
- чтобы Git тоже использовал в качестве SSH-агента Pageant - создаем перменную среды GIT_SSH со значением - путем до "TortoiseGitPlink.exe"(включительно), которая приходит вместе с Tortoise.
* Plink.exe - я так понимаю, что-то типа адаптера к Pageant, чтоб его можно было использовать как ssh-агента SSH-клиентами.
* TortoiseGitPlink - ее версия в составе Tortoise Git (любопытно, модифицирована ли как то)
все, git работает с ключами из Pageant
еще поддерживается фича зашифрованных приватных ключей - приватный ключ шифруется паролем (я так понимаю, это делается на этапе генерации ключа), и Pageant раз за сессию (до перезагрузки?) запрашивает пароль на используемые ключи.
UPD: этот дурачок pageant зачем то после закрытия забывает файлы ключей, которые в него добавляли (типа, супер-безопасность? хмм ну можт можт...).
есть воркэраунд - в команду запуска pageant вторым и последующими параметрами передавать пути к файлам ключей (ppk)
но все равно странноватое неудобство для приложения, смысл существования котрого - сделать работу с ключами более юзер-френдли
UPD2: оочень полезная кроха информации, добытая опытнаым путем: если для двух файлов ключа задать один и тот же пароль - Pageant запросит его лишь единожды!
Comments