2011-07-19 167 views
4

我們公司使用git進行源代碼控制,並且在我的機器上每次都可以不用輸入密碼就可以推送到服務器,但是我的一位同事不得不反覆輸入密碼,煩人,有誰知道如何解決這個問題?git在推/拉之前輸入密碼

在此先感謝

編輯: 我們沒有使用github上,我們已經從在git的用戶主目錄中的.ssh文件夾中的authorized_keys文件中所有用戶的SSH公共密鑰。我沒有爲我的電腦做任何特別的事情,只是像其他電腦一樣添加了ssh密鑰,但我是唯一一個不必重複輸入密碼的人

回答

3

這可能是通過設置密碼來完成的生成你的id_rsa密鑰對。有關github的一些文檔介紹如何使用密碼進行設置。如果你想在沒有密碼的情況下啓動密鑰對,請執行以下命令。

cd ~/.ssh 
ssh-keygen -t rsa -C "[email protected]" 

當生成密鑰時系統提示輸入密碼時,只需將其留空並按回車即可。

+0

他從來沒有說過他使用github –

+8

即使您在其他地方託管,GitHub也具有良好的SSH文檔。 – dahlbyk

+0

我沒有使用github,請將它設置在我們的服務器上 – marchinram

2

另一種方法是將密碼保存在密鑰上,但使用ssh-agent來存儲會話持續時間的密碼。

0

你需要將他的公鑰添加到位於該用戶的〜/ .ssh/authorized_keys文件中的authorized_keys文件中。

  1. 確保他創造
  2. scp [email protected]:~ id_rsa.pub
  3. SSH到服務器爲用戶的Git的SSH密鑰文件:SSH git_user @服務器並輸入密碼。
  4. cat id_rsa.pub >> authorized_keys

這將他的關鍵添加到授權密鑰,他不應該有輸入密碼。

+0

他的ssh密鑰已經存在於該文件中,如果不是,他根本無法登錄。問題在於,每次他進行推/拉操作時,它總是會提示他輸入密碼,並且它不會爲我執行此操作 – marchinram

+0

這不是事實。如果您擁有憑據,則可以將SSH連接到安裝了SSH的任何服務器。 –

+0

好的,我的意思是說我已經做了你所提到的,它仍然要求輸入密碼。 – marchinram

3

這取決於它是否要求輸入密碼或密碼。我猜這是後者。在這種情況下,這意味着用於身份驗證的密鑰對是使用密碼創建的。如果密鑰對不用於別的,它的安全,只是生成另一個使用

ssh-keygen 

並按Enter鍵三次,將其覆蓋。如果你不想覆蓋現有的一個,請告訴我,我會告訴你那裏的選項。

然後,無論它最初是要求輸入密碼還是密碼,您都需要將位於〜/ .ssh/id_rsa.pub的新密鑰對的公共一半添加到您嘗試使用的git服務器推到。如果它是gitosis或gitolite服務器,它可能是,你必須將公鑰授予有管理員權限的人,以便他們可以將其添加到服務器。如果它只是一個普通的Linux機器上有一個正常的git倉庫(可能不是),你可以使用

ssh-copy-id [email protected] 

它會詢問您的密碼,這一次,但此後又不是。

這應該涵蓋最可能的場景。如果看起來不對,請給我更多的細節,我應該能夠幫助你。

+0

謝謝你解釋這個。我想創建一個自動腳本來推動每個小時,但我無法弄清楚這一點,因爲我在創建密鑰時一直輸入密碼短語。 – Kuberchaun