2017-02-15 55 views
1

我想在post-receive中添加gitlab custom_hooksgitlab在post-receive,ssh到另一個服務器的custom_hooks

I ssh d到另一個服務器;我在另一臺服務器上添加了id_rsa.pubauthorized_keys的內容,並且git用戶可以在終端上輸入密碼而無需輸入密碼。

當我推,post-receive可以觸發,但它不能ssh到服務器。

有沒有人有任何關於兩種類型的SSH或任何其他建議的區別?


已解決。 gitlab通過docker安裝,所以執行post-receive的git用戶是gitlab docker的用戶。輸入gitlab docker並將id_rsa.pub正確地指向另一臺服務器後,問題就解決了。 感謝所有人,特別是@vonc。

+0

是不是已經在服務器上接收過郵件? –

+0

@MadPhysicist post-receive在gitlab的服務器上,但我需要登錄到另一臺服務器才能獲取最新的更新。 – Vinzid

+0

好的catch.I已包含在答案更多的知名度。 – VonC

回答

0

後收到可觸發,但無法通過SSH服務器

只需通過SSH調試命令在post-receive腳本替換你的ssh命令:

  • 第一添加id -aecho $HOME爲了仔細檢查誰在實際執行腳本,並用$HOME(因爲ssh會在$HOME/.ssh中尋求id_rsa
  • 然後添加ssh -Tv [email protected]以顯示有關失敗的ssh連接的調試信息。

這應該給你關於「兩種類型的ssh」的線索。

由於OP發現,這是因爲錯誤的用戶在玩:

的gitlab通過泊塢窗安裝,所以其執行post-receivegit用戶gitlab泊塢窗的用戶。
輸入gitlab docker並將id_rsa.pub正確地輸入到另一臺服務器後,問題就解決了。

+0

感謝您的建議和編輯!用戶是git,但uid與另一個用戶相同,這與終端上的git用戶不同。家裏都是/ home/git,當ssh時,兩者都將「提供RSA公共密鑰:/home/git/.ssh/id_rsa」作爲調試信息顯示,然後在終端上它會成功,但在後期接收中,它會「可以繼續的認證:publickey,password」,然後最終失敗。 – Vinzid

+0

@vinzid「,但uid與其他用戶相同,這與終端上的git用戶有所不同:這看起來很腥,應該首先解決。 – VonC