2017-02-15 37 views
1

Я хочу добавить gitlab custom_hooks в post-receive.custom_hooks gitlab в post-receive, ssh на другой сервер

I ssh d на другой сервер; Я добавил содержимое id_rsa.pub на authorized_keys на другой сервер, и пользователь git может войти без ввода пароля на терминале.

Когда я нажимаю, может быть запущен post-receive, но он не может ssh на сервер.

Кто-нибудь имеет представление о различии между двумя типами ssh или любыми другими предложениями?


Решено. gitlab устанавливается через докер, поэтому пользователь git, который выполняет пост-прием, является пользователем док-станции gitlab. После входа в доклер gitlab и получите нужный id_rsa.pub на другой сервер, проблема решена. Спасибо всем и специально @vonc.

+0

Разве сообщение не принимается на сервере? –

+0

@MadPhysicist post-receive находится на сервере gitlab, но мне нужно зайти на другой сервер, чтобы вытащить новейшее обновление. – Vinzid

+0

Nice catch.I включил его в ответ для большей видимости. – VonC

ответ

0

после приема может быть триггером, но не SSH к серверу

Просто замените вашу команду SSH по SSH отладочных команд в post-receive сценария:

  • первым добавить id -a и echo $HOME, чтобы проверить, кто на самом деле выполняет сценарий, и с которым $HOMEssh будет искать id_rsa в $HOME/.ssh)
  • затем добавьте ssh -Tv [email protected], чтобы отобразить отладочную информацию о неудавшемся подключении ssh.

Это должно дать вам подсказки о «двух типах ssh».

Как О.П. выяснилось, это произошло потому, что неправильно пользователь был в игре:

gitlab устанавливается с помощью докер, поэтому git пользователь, который выполняет post-receive является пользователем gitlab грузчиком.
После ввода док-станции gitlab и получения права id_rsa.pub на другой сервер, проблема решена.

+0

Спасибо за советы и редактирование! пользователь git, но uid совпадает с другим пользователем, который отличается от пользователя git на терминале. В доме есть как/home/git, так и когда ssh, оба будут «предлагать открытый ключ RSA: /home/git/.ssh/id_rsa» в качестве показа информации об отладке, тогда на терминале это будет успешным, но в post-receive, это будет «Аутентификация, которая может продолжаться: публикация, пароль», а затем, в конце концов, не удастся. – Vinzid

+0

@vinzid ", но uid такой же, как у другого пользователя, который отличается от пользователя git на терминале": это кажется подозрительным, и его нужно сначала разобрать. – VonC

Смежные вопросы