轉載自: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 |
|
因爲遠程版本庫的url是HTTPS,估計是我git clone的時候用HTTPS鏈接造成的
所以問題就出在這了,每次都很不方便,都要輸入用戶名和密碼。
爲了使用SSH公鑰的方式認證,我把config的url改成下面這樣
1 2 3 |
|
這樣我git push的時候又可以用SSH公鑰認證而不用去輸入用戶名和密碼,不僅方便,而且更安全。
如何產生SHH Keys看以下鏈接:
https://help.github.com/articles/generating-ssh-keys/