Мне нужно выполнить команды 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.
Какое рекомендуемое решение для этого?