Как настроить SSH-аутентифицированные команды git на этапе сборки 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.

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

1 ответ

Решение

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

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

Узнайте, что нового в TeamCity 9.1

Другие вопросы по тегам