最近在搞博客的事情,發現部署時會出現如上圖所示的錯誤,主要是這句:git@github.com: Permission denied (publickey)
,提示 沒有權限,push失敗,以前一直是拿GitHub客戶端上下代碼的,這回打命令用git竟然失敗了。結果一番研究百度,發現和SSH Key
有關,下面是我 解決這個問題的通過,在此記錄下來。↓
SSH Key
字面意思就是個鑰匙,通常發起網絡請求時咱們總要在傳入ID
,代表身份,這東西固然也是如此。git
首先須要手動獲取SSH Key
,命令行進入到項目文件夾後,輸入指令:github
-> git config --global user.email "email@email.com" #這裏email爲註冊GitHub帳號的郵箱,下同 -> ssh-keygen -t rsa -C "email@email.com" #獲取SSH Key -> ssh-add ~/.ssh/id_rsa #將獲取的SSH Key添加到id_rsa 這一步必不可少
接下來一路回車,若是出現xxxx/.ssh/id_rsa already exists. Overwrite (y/n)?
就摁y
。shell
⚠️SSH Key
會存放在:↓vim
macOS: 訪達 -> 前往 -> 我的 -> .ssh
(.ssh文件夾通常是隱藏的,顯示隱藏文件夾可用快捷鍵shift + command + .
)網絡
Windows: C:\Users\Administrator\.ssh
ssh
.ssh文件夾下包含有id_rsa
和id_rsa.pub
兩個文件,咱們須要的key就在id_rsa.pub
裏面。測試
-> vim ~/.ssh/id_rsa.pub
可用以上方式打開,固然也能夠直接雙擊打開。退出編輯模式快捷鍵shift + Q
,再摁Q
。spa
❗️這裏要注意一下,登陸GitHub後點擊右上角的頭像,而後Settings -> SSH and GPG Keys -> New SSH Keys
。⬇️命令行
➡️code
-> vim ~/.ssh/id_rsa.pub
添加key,title任意填,key就不行了,使用上面的命令打開後,將完整的key,就是從ssh-rsa一直
到郵箱,都複製到裏面去,保存便可。完成後的截圖⬇️。
這裏其實還有個點坑,每一個倉庫的設置頁有一個Deploy Key
,它的獲取方法和上面是同樣的,可是這個只對這一個倉庫有效,並且彷佛有有效期限?以前添加SSH Key搞錯了,忙活了好長時間。
-> ssh -T git@github.com #測試是否添加成功 -> ssh-add ~/.ssh/id_rsa # 若出現問題 從新添加key(不用在Github裏再添加)
push一下試試吧。
若是首圖的問題復現,而最近才添加過SSH Key,那麼能夠從新使用ssh-add ~/.ssh/id_rsa
試一試。