2016-03-12 28 views
1

有幾個關於此的問題和答案,但它們不適合我。我在~/.ssh/config添加以下,反映我使用特定的SSH密鑰對特定的Git服務器的意圖:智能地排除特定遠程的git ssh定義

Host HOST-NICKNAME-FOR-THIS-FILE 
    Hostname THE-HOST-DOMAIN-NAME 
    User THE-GIT-USER-ON-THE-HOST 
    IdentityFile ~/.ssh/id_rsa_filename_for_this_host_and_host_git_user 
    IdentitiesOnly yes 

,但我仍然得到試圖推動時,提示輸入密碼的遠程具有上述Hostname定義(配置片段的第二行)。我應該刷新git還是ssh以某種方式獲取新的配置?

是在推動要求我輸入密碼,我不知道這是否意味着git的服務器正試圖通過提供密碼我已經上傳到它,或者錯誤的密鑰是否正在使用SSH密鑰認證git 儘管我上面的定義。我怎麼知道發生了什麼事?

爲避免疑慮:我被要求輸入遠程服務器的git密碼,而不是ssh密鑰的本地密碼。

+0

Git版本是1.9.1,並且將是非常巨大的學習如何登錄哪個SSH密鑰Git是試圖使用,對這個和類似的事情更聰明一點! – matanster

+0

'〜/ .ssh /','〜/ .ssh/config'和'〜/ .ssh/id_rsa_filename_for_this_host_and_host_git_user'的權限是多少? – Alex028502

+1

將ssh直接發送到服務器時會發生什麼?你有密碼提示嗎? – merlin2011

回答

0

看起來你的ssh密鑰設置有權限問題。

在遠程計算機上,.ssh上的權限必須爲700,對.ssh/authorized_keys必須爲600

chmod 700 ~THE-GIT-USER-ON-THE-HOST/.ssh 
chmod 600 ~THE-GIT-USER-ON-THE-HOST/.ssh/authorized_keys 

當然對應私鑰,也必須authorized_keys文件中的公鑰。

+0

你在這裏叫什麼遠程機器?你是指git服務器還是什麼? – matanster

+0

@matanster,是git服務器。你正在嘗試「ssh」的那個。 – merlin2011

+0

本地在我的機器上,密鑰文件與我已成功使用的其他密鑰具有相同的權限。我會在本週開始確認,我並不是唯一一個試圖通過SSH連接到該git服務器的人,然後回到這裏。我仍然想知道什麼是明確的方式來本地記錄什麼SSH密鑰正試圖超越巫術風格猜測.. – matanster