2012-08-01 175 views
16

我正試圖讓GitLab在我的服務器上運行。我遵循gitlab github頁面上的安裝說明,一切進展順利。GitLab需要git @ localhost密碼才能推送到回購站

的問題是,當我創建一個回購協議,並嘗試

sudo git push -u origin master 

提示我輸入「git的@本地的密碼:」

的git的用戶沒有密碼,所以這是一個問題。

其他遇到此問題的人建議將git添加到我的sshd conf中的AllowedUsers,但我沒有AllowedUsers字段,因此這似乎不是問題。

我還是很新的ssh的東西,所以我相信它的某種ssh密鑰問題,儘管我試圖添加所有相關的ssh密鑰到/home/git/.ssh/authorized_keys並驗證沒有行在文件中打破。

僅供參考,我完全通過安裝在gitlab維基提供的測試:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 

任何建議非常感謝!

編輯

所以,我終於得到了解決此通過從不同的機器只是承諾回購。事實上,我被SSH登錄到gitlab運行的同一臺機器上。只要我嘗試從主機以外的機器提交,它就很好。所以,這可能是一些人的解決方案(這對我們來說是,因爲我們是在獨立的機器上開發而不是我們的服務器)。

對於那些試圖在遇到此問題的同一臺計算機上主持和開發的人來說,這仍然是一個開放式問題。

+0

新的問題是http://計算器。 com/questions/15495843/gitlab-git-user-password – 2013-05-09 08:45:25

+0

你不應該在'git push'中使用'sudo' – StenSoft 2015-07-02 23:02:54

回答

3

如果安裝進行順利,這意味着您的gitlab能夠克隆gitolite-admin回購沒有問題。
但你說它通過了狀態檢查,這意味着你正在使用ssh連接,一個名爲'gitlab'的賬戶。

這也意味着任何客戶端將不得不ssh與同一帳戶'gitlab',而不是'git'。
所以,如果你的SSH密鑰已通過gitlab接口加入,那麼你就可以的Git克隆/混帳推到一個遠程名稱的由來這將對地址「[email protected]

要調試多一些,看看一些其他的技巧在「Setup Git Remote SSH (git-upload-pack/git-receive-pack)」中提到:如果你不能在本地推動

(在服務器上,這是對的‘localhost’),嘗試至少一個:

ssh -vvvT [email protected] 

應該不需要任何密碼,因爲/home/gitlab/.ssh/id_rsa/home/gitlab/.ssh/id_rsa.pub都存在。

+0

嗨VonC,感謝您在這裏的幫助。爲了驗證,我使用gitlab以外的帳戶(用戶名是devin)將SSH連入服務器機器。 不幸的是,ssh -vvvT gitlab @ localhost 確實需要密碼。 我還沒有嘗試通過界面添加一個鍵,因爲我沒有注意到在gitlab上做這個選項。如果您有任何進一步的建議,請告訴我。 謝謝! – DevinR 2012-08-01 21:59:31

+0

@DevinR如果您先嚐試ssh而未先添加yuor公鑰,那麼ssh會要求輸入密碼是正常的:它會在〜gitlab/.ssh/authorized_keys中查找您的pub密鑰,並且找不到它。您需要生成一個公鑰/私鑰(如http://stackoverflow.com/a/10921120/6309),並將公鑰複製到您的gitlab賬戶頁面。 – VonC 2012-08-01 22:18:45

+0

我現在已經在gitlab上生成了一個用戶,並在那裏添加了我的ssh密鑰。我還將密鑰添加到/home/gitlab/.ssh/authorized_keys和/home/git/.ssh/authorized_keys。不幸的是我仍然有同樣的問題。再次感謝你的幫助。 – DevinR 2012-08-01 22:54:51

0

我遇到了表現出類似症狀的問題。我的問題是我有一臺路由器後面有兩臺電腦。路由器設置爲將SSH通信(端口22)轉發到計算機1.將Gitlab安裝在計算機2上。我正在使用域和麪向公衆的IP進行連接。當我推送時,SSH流量被導向計算機1。計算機1上有一個git用戶,只需安裝git即可。計算機1提示我輸入git用戶的密碼。

我的安裝也通過了所有的準備檢查。

我不確定你是否有同樣的問題,但症狀是完全相同的,所以我想這可能有幫助。

0

最近開始發生這種情況 - 工作項目git會問我電子郵件和密碼。進入後繼續確定,但很煩人。

我可以解決這個問題對於任何給定的應用程序,我要訪問:

git config remote.origin.url [email protected]:user_org_or_co/repo_name_itself 

例如

git config remote.origin.url [email protected]:smithw/bookmarkapp 
0

你的git和gitlab用戶沒有密碼嗎?

sshd_config是怎麼回事?

檢查,如果這條線是在文件中:PermitEMptyPassword Yes

無論如何,我想這是不安全的,在我安裝,我把這個「是」,克隆,然後保留舊的配置... 當克隆的ssh_key由用戶git保存,它不會再要求密碼..

但現在,我遇到了另一個錯誤,當我要推,對於每個新用戶,我們必須重新配置ssh允許空推和然後保持配置。

(我還沒有測試過這種方法,因爲我發現我的gitlab沒有創造用戶的git回購:/)

4

TL;

鑰匙店的DR gitlab數據庫和gitolite端。 你應該使用工廠編譯的gitolite-admin.git文件夾,不要使用你的備份! 然後使用update keys命令重建gitolite的密鑰。 (更新那些已經保存在gitlab數據庫裏面gitolite鍵)

sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production 

最有可能是因爲有關於gitolite鍵東西問題無法正確保存。 這些鍵(用於登錄)實際上由gitlab & gitolite分開保存。 對於拉/推實際上是使用保存在gitolite中的密鑰。 (git/repositories/gitolite-admin.git/index,git/.gitolite/keydir,git/.ssh/authorized_keys)

gitlab通常應該有助於將那些導入的密鑰保存在web上gitolite文件。 但是,由於某些原因它失敗了。 由於密鑰沒有在gitolite中正確保存,客戶端/服務器無法使用密鑰並回退到密碼。

您必須檢查並修復保存在gitolite中的這些密鑰以糾正問題。

檢查出更多的 https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8

0

這可能是太簡單了,但我有同樣的問題。我猜這是因爲它拿起本地主機作爲域名。

它從另一臺計算機登錄到我的本地主機後運行,然後嘗試提交。這是非常愚蠢的,但值得嘗試。

2

我收到了相同的密碼提示。我的問題是,我只限於幾個用戶限制ssh的使用。我將git用戶添加到AllowUsers列表sshd_config中,並且一切運行良好。

1

確保您的gitlab配置文件具有您的公共ssh密鑰。登錄到gitlab,轉到您的配置文件並選擇「添加公鑰」按鈕。複製並粘貼密鑰框中的「keyfile」.pub內容。有一些版本的gitlab有一個bug,當你添加你的公鑰時,它沒有更新authorized_keys文件。將您的公鑰添加到您的配置文件後,驗證(但不要手動添加)您的公鑰在authorized_keys文件中。如果這不是問題,那麼以前的答案可能會有所幫助。

上git的服務器編輯 /etc/ssh/sshd_config

取消註釋下的認證部分以下行或將其添加

1

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

將你的服務器電源循環再火起來gitlab

+1

「給你的服務器一個電源週期」似乎過度 - 只需重新啓動sshd。 – 2014-01-28 17:09:16

0

我和這個混在一起時間。當你使用sudo git時,這意味着git以root身份啓動。問題是 - 您是否爲root創建SSH密鑰並將其放入Gitlab?

我猜你創建的SSH密鑰沒有sudo(這是你的正常帳號),把SSH公鑰添加到Gitlab中,然後運行sudo git

你可以嘗試運行沒有sudo的git。如果您有文件夾權限問題,這使您首先使用sudo,請嘗試將您的用戶帳戶訪問權限授予該文件夾。或者,也許可以在您擁有寫入權限的文件夾中正常嘗試使用git。

0

有一個勾號爲here

要確定問題的原因,請通過sudo grep sshd /var/log/auth.log檢查服務器上的日誌。

直到2013年12月13日提交b24d5d,問題的流浪開發機器上,由於權限的過剩.ssh/引起的。您必須有:

chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys 

或ssh拒絕讓RSA連接和sudo grep sshd /var/log/auth.log說:

Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys  

的問題已經解決了通過設置sshd的非sctrict模式進行開發,它允許即使它的權限太自由,也能正常運行。

0

我遇到同樣的問題,最近,發現這對我的問題是,SELinux的是防止sshd的從gitlab數據目錄/var/opt/gitlab/訪問到的authorized_keys文件。

爲了解決這個問題,編輯/etc/selinux/targeted/contexts/files/file_contexts.homedirs並添加行:

/var/opt/gitlab/\.ssh/.* system_u:object_r:ssh_home_t:s0 

然後運行:

$ restorecon -Rv /var/opt/gitlab 

來源:https://serverfault.com/questions/50573/selinux-preventing-passwordless-ssh-login

0

這意味着gitlab SSH服務器配置不正確。

編輯/etc/ssh/sshd_config並保證:

PasswordAuthentication no 
ChallengeResponseAuthentication no 

這應該強制SSH密鑰只登錄這也是一個很好的安全措施。許多較新的發行版默認已啓用此功能。

不要問我,如果你被鎖在外面,顯然SO不是問怎麼配置和使用私鑰/公鑰對的地方。

0

對於Bitnami或其他需要快速解決問題的人來說,只需使用完整路徑即可。

git clone [email protected]_adress:/full/path/to/project.git 

編輯: 我忘了提,這是非常重要的檢查,如果您通過網頁添加SSH密鑰混帳實驗室..

+0

這看起來很有希望,但仍然要求輸入服務器地址的密碼 – pal4life 2015-12-22 17:31:26