前幾天把本身的Ubuntu系統升級了一下,結果Git連不上GitHub了,其中各類心酸啊,主要是誤信了官方文檔關於測試SSH鏈接成功那部分的提示,很少說直接上乾貨!python
一、本地配置Git用戶名和郵箱名git
$ git config --global user.email "xxx@qq.com" $ git config --global user.name "xxx"
二、生成SSH RSA keygithub
$ ssh-keygen -t ras -C "xxx@qq.com"
三、將public key複製粘貼到GitHub中
bash
settings --> SSH and GPG keys --> New SSH key
四、測試客戶端與GitHub的鏈接,重點來了!ssh
$ ssh -vT git@github.com
最後一行輸出:
ide
Error: Permission denied (publickey)
居然被拒了!!!而後我嘗試使用debug模式鏈接測試,彷佛是找不到對應的id_rsa key!
測試
$ ssh -vvv git@githup.com
五、而後我查找了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」。
debug
而後我繼續查找緣由,上Google看人家老外是怎麼解決的,順便把老外遇到問題的解決命令我貼一下,雖然對於個人問題然並卵!
md5
# 目錄和文件權限不對也會致使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/