Ответ 1
Попробуйте добавить в конфигурацию сборки teamcity.git.use.native.ssh = true в качестве параметра конфигурации.
Это помогло мне решить подобную проблему. Я узнал этот трюк от здесь.
Я запускаю сервер и агент TeamCity 7 на MacOS. Мой репо находится на github. Я использую ssh, и я знаю, что аутентификация настроена правильно, потому что тест прошел успешно.
Строка отлично работает, когда я использую режим проверки VCS "Автоматически на сервере", однако, когда я использую режим проверки VCS "Автоматически на агенте", я получаю эту ошибку.
[13:40:35][Updating sources] Failed to perform checkout on agent: '/usr/bin/git fetch --progress origin +refs/heads/master:refs/remotes/origin/master' command failed.
stderr: java.io.IOException: Authentication failed
at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:275)
at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:159)
at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:139)
fatal: The remote end hung up unexpectedly
Что мне не хватает?
Попробуйте добавить в конфигурацию сборки teamcity.git.use.native.ssh = true в качестве параметра конфигурации.
Это помогло мне решить подобную проблему. Я узнал этот трюк от здесь.
То, что для меня совершенно не было очевидным, заключается в том, что секретный ключ по умолчанию на сервере копируется в агент и используется там. Я попытался сперва напрасно добавить закрытый ключ к пользователю, с которым работал агент (очевидно, на машине-агенте). Но затем я добавил секретный ключ к пользователю, который запускал TeamCity на серверной машине, а затем завершила проверку Agent Side.
Я также использовал свойство teamcity.git.use.native.ssh=true
, но я не думаю, что это помогло с этой конкретной проблемой.
Единственный след этой информации был в этот комментарий.