首先確認下你的Linux/Mac/Wins當前用戶對於 git 工程所在的本地文件夾, 是否具有777權限,沒有的話,先設置一下.
因為即使你把 root 用戶的 ssh 加到 GitHub 后, 操作系統的子賬戶並不能具有 ssh 的權限.
如果具有777權限,可以進行下面的檢查:
下面的方案前提是你對文件夾有777權限.
電腦只有一個git環境
如果你的電腦只有一個git環境,那么極大多數情況是由於 GitHub 賬號沒有設置 ssh 公鑰信息所致。 前往 GitHub 網站的"account settings"
依次點擊"Setting -> SSH Keys"->"New SSH key"
Title處填寫“id_rsa.pub”或其他任意信息。 key處原樣拷貝下面命令的打印 ~/.ssh/id_rsa.pub
文件的內容:
cat ~/.ssh/id_rsa.pub # 控制台上輸出內容
pbcopy < ~/.ssh/id_rsa.pub # 自動拷貝到粘貼板
如沒有則按下述方法生成:
ssh-keygen -t rsa
輸入文件名的地方輸入可以輸入自定義文件名,默認是id_rsa,然后一路回車......
注意如果自定義文件名的話,需要加一個config文件,下文有介紹。
最后,輸入
ssh -T git@github.com
如果沒有報錯,
再嘗試輸出就應該有了
cat ~/.ssh/id_rsa.pub # 控制台上輸出內容
pbcopy < ~/.ssh/id_rsa.pub # 自動拷貝到粘貼板
或者說設置了 sshkey 還是 permission denied 怎么回事?
回到如下命令,檢查當前配置的SSH對應的git賬號;
ssh -T git@github.com
然后用如下命令(id_rsa對應目標賬戶的私鑰)命令,制定目標Git賬號
ssh-add -K ~/.ssh/id_rsa
電腦有多個git環境
如果嘗試了上面的方法還是不行,那么可能你用了多個密鑰,你在新建秘鑰的時候使用了自定義的名稱,比如 github_rsa,你需要再配置一個 config 文件
cd ~/.ssh/
vi config
輸入以下內容:
Host github
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_rsa
ServerAliveInterval 300
ServerAliveCountMax 10
ESC+:wq保存退出
重新嘗試以下命令即可搞定:
注意⚠️:@ 符號前后的參數要與上面 User 和 HostName對應上,一般公司內部的代碼倉庫都是自定義的,注意修改上面的參數然后再匹配下面的進行測試:
ssh -T git@github.com
ssh-add -K ~/.ssh/github_rsa