Git 提示 Permission denied (publickey),如何才能解決?


首先確認下你的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM