Как настроить 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