解決git Push時請求username和password,而不是ssh-key驗證

轉載自:https://blog.lowstz.org/posts/2011/11/23/why-git-push-require-username-password-github/

之前開始用github時是在ubuntu下按着官方的新手指南搞定的。但最近一直在用fedora,所以也想在fedora下用github,配置的時候很順利,就是在git push的每次都需要輸入username和password,而我是配置好公鑰登陸的。用ssh -T [email protected] 也是成功用公鑰登陸的。

查看了下~/.gitconfig,發現和ubuntu下的一樣,google看到一篇《GitHub使用簡介》,裏面說了git push的兩種方式,SSH方式和HTTPS方式。

在版本庫的SSH方式和HTTPS方式是不同的,具體來說就是url信息的不同,但是,實際的認證機制也是不同的。當建立了本機密鑰之後,使用ssh方式實際上是不需要再次認證的,而https則每次需要輸入密碼 。《Help.GitHub - SSH key passphrases》裏也說了用SSH更方便更安全,不需要去輸入長長的密碼。

我去看了下repo目錄下的.git/config,果然,我的url是HTTPS形式。

1
2
3
[remote "origin"]
fetch = + refs/heads/*:refs/remotes/origin/*
url = https://[email protected]/username/projectname.git

因爲遠程版本庫的url是HTTPS,估計是我git clone的時候用HTTPS鏈接造成的

所以問題就出在這了,每次都很不方便,都要輸入用戶名和密碼。

爲了使用SSH公鑰的方式認證,我把config的url改成下面這樣

1
2
3
[remote "origin"]
fetch = + refs/heads/*:refs/remotes/origin/*
url = [email protected]:username/projectname.git

這樣我git push的時候又可以用SSH公鑰認證而不用去輸入用戶名和密碼,不僅方便,而且更安全。


如何產生SHH Keys看以下鏈接:

https://help.github.com/articles/generating-ssh-keys/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章