Linux用戶切換導致github push出現Permission denied (publickey)錯誤

最近嘗試使用github託管代碼,前面的流程還算比較順利,沒有遇到什麼大問題,基本參考網上的流程就可以。

首先,直接在網頁上註冊帳號,創建代碼倉庫repository,填寫相關信息。

然後,在linux客戶端,用命令:git clone [email protected]:xxx/xxx.git 同步網頁上創建repository到本地.

在本地添加文件,git add, git commit等,具體的可以參考網上或者git --help。

最後一步就是上傳代碼,git push, 如果沒有生成本地公鑰私鑰對的,用ssh-keygen生成。

然後把公鑰的內容,通過網頁,粘貼複製,提交到github中。

在最後一步,要往github網站推送代碼,出現問題了。

出現以下的錯誤。

試了幾次,還是不行,就重新生成本地公鑰密鑰對,替換網站上的ssh key。

用:ssh -T [email protected] 測試也還不行。

從網上找的解決辦法,大多都是官網幫助的翻譯版。

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

後來在網上找到這篇文章:

http://www.cnblogs.com/nani/archive/2012/11/02/2751660.html

發現有可能是本地密鑰找不到的問題。

用ssh -vT [email protected]測試,果然是

原來是本地密鑰對生成的路徑不對,生成密鑰用的是song用戶,git push用的確實root用戶。
本地密鑰對存儲在/home/song/.ssh/ 目錄下,用root用戶推送,在root/.ssh/ 目錄下找的密鑰對,當然就不對了。
 
切換到對應的用戶,再次推送,就可以了。
[song@centos6364 FixSizeMemPool]$ git push -u FixSizeMemPool master
Enter passphrase for key '/home/song/.ssh/id_rsa': 
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 3.16 KiB, done.
Total 7 (delta 0), reused 0 (delta 0)
To [email protected]:vscz/FixSizeMemPool.git
   223eabd..8b275e2  master -> master
Branch master set up to track remote branch master from FixSizeMemPool.
 
被這個小問題給困擾了好幾個小時,終於都解決了,看來調試非常重要啊,能快速找到問題的所在。

 

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