Git Permission Denied

    前幾天把自己的Ubuntu系統升級了一下,結果Git連不上GitHub了,其中各種心酸啊,主要是誤信了官方文檔關於測試SSH連接成功那部分的提示,不多說直接上乾貨!


1、本地配置Git用戶名和郵箱名

$ git config --global user.email "[email protected]"
$ git config --global user.name "xxx"

2、生成SSH RSA key

$ ssh-keygen -t ras -C "[email protected]"

3、將public key複製粘貼到GitHub中

settings --> SSH and GPG keys --> New SSH key

4、測試客戶端與GitHub的連接,重點來了!

$ ssh -vT [email protected]

    最後一行輸出:

Error: Permission denied (publickey)

    竟然被拒了!!!然後我嘗試使用debug模式連接測試,似乎是找不到對應的id_rsa key!

$ ssh -vvv [email protected]

5、然後我查找了Git的官方文檔,他們提供了以下命令修改

$ ssh-add bash
$ ssh-add -l
$ ssh-add ~/.ssh/id_rsa
$ ssh-add -l -E md5

    上面幾個命令的意思是我們ssh測試連接時找不到id_rsa.pub公鑰,所以要通過“ssh-add ~/.ssh/id_rsa”命令給它指明位置,我之前系統升級估計導致這個配置被刷掉了,所有我又重新添加上去了,這時我信心滿滿的以爲問題已經解決了!騷年,你太天真了!還是“Permission denied”。

    然後我繼續查找原因,上Google看人家老外是怎麼解決的,順便把老外遇到問題的解決命令我貼一下,雖然對於我的問題然並卵!

# 目錄和文件權限不對也會導致SSH連接不上哦!

chmod 755 /home
chmod 700 .ssh
chmod 600 .ssh/*

# 檢查ssh_config和sshd_config配置

IdentityFile ~/.ssh/id_rsa
PubkeyAuthentication yes

    最後我無意中在一個網站上看到有一個人說,某些Linux kernel版本上的SSH連接測試會有問題,這句話瞬間點醒了我,會不會我已經可以連接了,但是就是由於這個bug導致我一直顯示連接被拒呢!我在GitHub上新建了一個測試倉庫,然後在本地克隆它,然後成功了!我又在這個倉庫中添加了一些測試文件也成功上傳到了GitHub上,這時我心裏只有一句話“mmb”!


附上官網文章:https://help.github.com/articles/error-permission-denied-publickey/


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