Как настроить команды git с проверкой подлинности SSH на этапе сборки TeamCity

Мне нужно выполнить команды git на этапе сборки TeamCity.

Эти команды git должны использовать URL-адрес на основе SSH для репозитория git, чтобы аутентифицироваться как привилегированный пользователь на сервере git (поскольку эти команды git фактически изменяют репозиторий git, а не просто читают его).

Мне известно об этом вопросе.

У меня уже есть режим проверки VCS "Автоматически на агенте". Корень VCS правильно настроен с помощью ssh и работает хорошо.

Однако, как указано в документации, TeamCity

временно сохраняет ключ в файловой системе агента и удаляет его после завершения git fetch/clone.

Таким образом, несмотря на то, что TeamCity правильно использовала ключ SSH во время проверки на стороне агента, ключ намеренно недоступен позже в сборке.

Но я очень хочу использовать ключ позже!

Вывод, который генерируют команды git:

[06:12:29][Step 3/4] Permission denied (publickey).
[06:12:29][Step 3/4] fatal: Could not read from remote repository.
[06:12:29][Step 3/4] 
[06:12:29][Step 3/4] Please make sure you have the correct access rights
[06:12:29][Step 3/4] and the repository exists.

Я подтвердил, что файл known_hosts существует и содержит соответствующие открытые ключи. Я также подтвердил, что C:\Users\systeamcityagent\.ssh не содержит закрытых ключей (как и ожидалось).

Я использую TeamCity Enterprise 9.1.3.

Какое рекомендуемое решение для этого?


person Klas Mellbourn    schedule 25.11.2015    source источник
comment
Вы заставили это работать? У меня похожая ситуация, и мне трудно заставить агента ssh работать с моим git push.   -  person Bronumski    schedule 02.06.2017


Ответы (1)


В Teamcity 9.1 появилась новая функция под названием «Агент SSH», которая позволяет устанавливать SSH-соединения на стороне агента с использованием ключей SSH, хранящихся на сервере:

введите описание изображения здесь

См. раздел Что нового в TeamCity. 9.1

person Mecaveli    schedule 26.11.2015