2012-08-03 91 views
3

我們正在試圖建立代碼審查的格里特實例,並計劃使用「回購」在 我能夠直接推動到格里特。 ,但使用repo upload失敗公鑰錯誤:調試「回購上傳」的問題 - 權限被拒絕(公鑰)

[email protected]:~/workspace/git/gerrit-test$ repo upload 
Upload project path/gerrit_test/ to remote branch master: 
branch master (1 commit, Fri Aug 3 15:23:50 2012 -0700): 
    8ef17a1b this better effin work 
to gerrit.test.com:8081 (y/N)? y 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

---------------------------------------------------------------------- 
[FAILED] path/gerrit_test/ master   (Upload failed) 

我已經縮小的問題正被用於此回購的用戶名,但不知道在哪裏設置這個用戶名(我不是確定如何檢查正在使用的用戶名)。 我已經嘗試在.repo/manifests.git/config中添加以下內容,但仍然失敗。

[review "gerrit.test.com:8081"] 
     username = <my_username_from_gerrit_profile_page> 

我在哪裏添加正確的用戶名?

謝謝。

+0

僅供參考,調試這和看的好辦法的能力URL(包括用戶名)'repo upload'正在使用'GIT_TRACE = 1 repo upload'。 – sschuberth 2016-07-26 13:55:03

回答

2

默認情況下,gerrit ssh服務器在端口29418上啓動。您似乎正在連接到端口8081,我懷疑它是Web服務器端口號。

爲了確認檢查「等/ gerrit.config」文件的以下部分:

$ ssh -p 29418 [email protected] 

    **** Welcome to Gerrit Code Review **** 

    Hi mark, you have successfully connected over SSH. 

    Unfortunately, interactive shells are disabled. 
    To clone a hosted Git repository, use: 

    git clone ssh://[email protected]_machine:29418/REPOSITORY_NAME.git 

Connection to localhost closed. 

我:

[sshd] 
    listenAddress = *:29418 
[httpd] 
    listenUrl = http://*:8081/ 

你還可以通過運行以下命令來檢查你的私鑰證書認爲你能夠「直接推送到Gerrit」的原因是因爲ssh端口號是存儲庫URL的一部分。

+0

謝謝。當我兩週後回來工作時,我會試試這個報告。 – copolii 2012-08-06 19:03:32

+0

@copolii享受你的假期:-) – 2012-08-06 20:01:25

6

確保你的用戶名在配置文件中。

$ git config --global review.<"URL">.username $USER 
+0

這真的很尷尬,這在大多數情況下確實是必要的,因爲[默認情況下回購使用用戶電子郵件地址作爲用戶名](https://android.googlesource.com/tools/repo /+/v1.12.33/git_config.py#652)而不是本地用戶帳戶的名稱。 – sschuberth 2016-07-26 13:37:32

2

回購工具使用您的電子郵件前綴review.URL.username

例如,

用戶名:john_chen

電子郵件[email protected]

John_Chen將是review.URL.username。

因此,你必須檢查是否有通過John_Chen

連接

您可以通過回購跟蹤此--trace上傳

相關問題