2011-12-22 142 views
111

我上傳了我的~/.ssh/id_rsa.pubBitbucket's SSH keys作爲explained,但Git仍然要求我在每次操作(例如git pull)時都要求我輸入密碼。我錯過了什麼?Git Bitbucket:即使上傳我的公用SSH密鑰,也總是要求輸入密碼

這是一個私人倉庫(另一人的私人倉庫的叉),我克隆它是這樣的:

git clone [email protected]:Nicolas_Raoul/therepo.git 

這裏是我的地方.git/config

[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = https://[email protected]/Nicolas_Raoul/therepo.git 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 

在與相同的環境相同的公鑰,Git上的Git工作正常。
.sshrwx------.ssh/id_rsa-rw-------.ssh/id_rsa.pub-rw-r--r--

回答

177

你確定你使用ssh鏈接克隆呢?

原始URL說url = https://[email protected]/Nicolas_Raoul/therepo.git所以如果它使用https,它會要求輸入密碼,而不管你的ssh密鑰。

+40

你是對的,謝謝!我最有可能用錯誤的URL克隆。我用'[email protected]:Nicolas_Raoul/therepo.git'替換了'.git/config'中的URL,現在它起作用了! – 2011-12-22 07:55:36

+7

和更改遠程使用git http://stackoverflow.com/questions/2432764/how-to-change-a-remote-repository-uri-using-git – 2012-09-12 03:41:39

+3

這是bitbucket誰建議我https網址創建存儲庫時!怎麼來的! – 2013-08-25 16:03:59

9

在HTTP請求的情況下,也和另一種可能是粘貼憑證(帶密碼)直接進入網址:

http://username:[email protected]/... 

這將節省的痛苦再次給您的憑據每次倍。簡單的修改你的.git/config(url)。

+4

但不安全。如果密碼有一些像'$%'這樣的字母, – Gank 2016-05-13 15:45:57

15

至於解釋here,如果你有SSH鏈接克隆,你需要輸入用戶名/密碼,每次推/拉時間。檢查上述answer通過@manojlds

但是,如果你想與HTTPS克隆,並希望避免輸入用戶名/密碼,每一次,你可以憑據存儲到緩存以下命令:

git config --global credential.helper 'cache --timeout 3600'

其中3600(秒)表示1小時,您可以根據您的要求更改它。

+1

就不能工作了,就像爲我節省了很多時間!謝謝! – 2018-01-01 01:33:32

4
+0

我認爲'步驟1'是'Windows','步驟2'是'Linux',但是你忘記了正確提到它。 – 2016-08-09 18:15:27

+0

我在Windows系統上運行了這3個步驟,它工作正常。 – webdev5 2016-08-09 19:30:07

+2

在這種情況下,我想補充一點,在Linux操作系統上,我們只需要step2和step3來獲得相同的效果:) – 2016-08-10 00:08:12

7

它已在上面回答。我將總結上面檢查的步驟。

在項目目錄中運行git remote -v。如果輸出顯示以https://abc開頭的遠程URL,那麼您可能每次都需要用戶名密碼。

所以要更改遠程URL運行git remote set-url origin {ssh remote url address starts with mostly [email protected]:}

現在運行git remote -v來驗證已更改的遠程URL。

參見:https://help.github.com/articles/changing-a-remote-s-url/

1

下面假設通過的iTerm /終端的命令行訪問到位桶。

對於MacOS Sierra 10.12.5,我的系統表現出一個同樣的問題 - 在每個到bitbucket的連接上請求我的SSH密碼。

該問題與macOS 10.12.2中的OpenSSH更新有關,這些更新在Technical Note TN2449中描述。

你很好可能需要調整您的解決方案,但如果添加到您的〜/ .ssh/config文件下面的工作:

Host * 
    UseKeychain yes 

有關SSH CONFIGS更多信息,請看看手冊頁ssh_config中:

% man ssh_config 

一件事:有上超級here根據自己的需要和設置,討論這個問題和各種解決方案的好寫了。