2013-02-22 94 views
3

我的機器設置如下: Windows 7,Git for Windows,Git Bash,openSSH 1.6通過cygwin安裝。即使在SSH密鑰交換後,GitHub仍然要求登錄

我也跟着上https://help.github.com/articles/generating-ssh-keys

的指示,但我還是在每次登錄我推的東西。

我想我的設置是搞砸了...任何幫助非常感謝。

+1

您是否在存儲庫中使用了SSH-URL?如果使用HTTP變體,則不能使用密鑰身份驗證,但需要使用密碼。 – 2013-02-22 09:59:48

+0

啊這是問題的感謝,但現在我必須每次鍵入密碼短語...是必要的嗎? – goTAN 2013-02-22 10:34:19

+0

請參閱我的答案。 – 2013-02-22 10:52:30

回答

3

爲了能夠使用基於密鑰的身份驗證(而不是HTTP basic-auth),您必須使用SSH協議。在Github上,URL如下所示:

[email protected]:username/repository.git 

一旦您使用密鑰驗證,就可以使用常用的SSH工具來管理連接。其中一個工具是SSH代理程序,它將在加載後解密私鑰並在運行時將其保存在主內存中。這允許新的SSH會話使用此密鑰,而不必打擾密碼問題。

您可以通過運行

ssh-add /path/to/key 
+0

當我嘗試將密鑰添加到我的ssh代理程序時出現錯誤: 無法打開與您的身份驗證客戶端的連接。當我在cygwin上執行ps -a時,只能看到/ usr/sbin/sshd進程正在運行。有趣的是,我無法看到我的git bash上的這個過程。取而代之的是使用/ bin/ssh-agent。我真的搞砸了什麼...... – goTAN 2013-02-22 11:05:12

+0

@goTAN連接問題是cygwin的ssh客戶端的問題。看到這裏:http://stackoverflow.com/questions/17695337/cygwins-ssh-add-returns-could-not-open-a-connection-to-your-authentication-age/17695338#17695338。如果你在我的鏈接中關注Holger的答案和答案 - 你應該很樂意去。 – 2014-01-13 14:02:04

0

添加私鑰當前SSH代理會話現在我得到了它還挺工作... 起初我卸載了SSH軟件包cygwin的版本,因爲混帳的Windows附帶SSH。

像Holger說我必須添加密鑰到ssh代理,但從git bash我無法添加它。它的工作是這樣的:

eval 'ssh-agen.exe' 

ssh-add ~/.ssh/id_rsa 

在此之後,我能夠推入,而無需輸入密碼。 剩下的唯一問題是,我必須在每次系統重啓後添加密鑰...

ANy想法如何解決這個問題?

+0

您必須始終輸入您的密碼。按照我的指示在我的文章進一步自動化。 – 2013-10-22 14:32:23

0

這些說明適用於Windows 7及更高版本。

  1. 創建一個在你的home目錄命名爲.bashrc文件名(這樣完整的文件路徑是C:\Users\XYZ\.bashrc其中XYZ是Windows用戶名
  2. 在文件中添加以下兩行注:私鑰文件的改變位置如果不是~/.ssh/id_rsa

    eval `ssh-agent`

    ssh-add ~/.ssh/id_rsa

  3. 開放的Git Bash的應用程序,你應該詢問你的密鑰密碼

0

如果你想刪除的密碼提示,並惹惱你就會進入:

ssh-keygen -p 

輸入舊密碼,當要求新密碼時,請將其留空。