前幾天把自己的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”!