簡體   English   中英

Git 推送權限被拒絕(公鑰)但成功通過身份驗證

[英]Git push permission denied (publickey) but successfully authenticated

我想用 ssh 將我的提交推送到 github。我得到

您已成功通過身份驗證

運行ssh -T git@github.com命令后出現消息,但是當我想推送我的提交時,出現此錯誤:

權限被拒絕(公鑰)。 致命:無法從遠程存儲庫讀取。

請確保您擁有正確的訪問權限並且存儲庫存在。

我運行ssh-add -l命令,我得到

4096 SHA256:SREQ0/2G0mT+UxUmpLWmkMramBcFxnl+onFyXgwFENk ~/.ssh/work2_rsa (RSA) 4096 SHA256:gKPZ1Hxzc6eZ/NsgnoPaJsGbdWgQV54bYAXaTym3PfY ~/.ssh/work3_rsa (RSA)

我運行git remote -v我得到

origin  git@github.com:H-Ghadirian/UdacitySillySong.git (fetch)
origin  git@github.com:H-Ghadirian/UdacitySillySong.git (push)
sillySong   git@github.com:H-Ghadirian/UdacitySillySong.git (fetch)
sillySong   git@github.com:H-Ghadirian/UdacitySillySong.git (push)

我讀了這篇文章 它與我的問題非常相似,但sudo沒有解決我的問題。

我也運行git push -u origin master並得到同樣的錯誤:

權限被拒絕(公鑰)。

我還閱讀了權限被拒絕(公鑰)。 致命:遠程端意外掛斷 git 拉但我的公鑰在.ssh 文件夾中,那不是我的情況

我讀了這個頁面: 錯誤:權限被拒絕(公鑰)並檢查所有。 我錯過了什么?

我應該怎么辦?

蘋果操作系統:塞拉利昂

git 版本2.13.5 (Apple Git-94)

正如這個鏈接所描述的,我將config文件添加到我的.ssh文件夾中並添加

Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/work2_rsa

給它。

首先檢查git remote -v確實返回的內容:

  • 它需要是你擁有的回購或者你是合作者
  • 它必須是正確的ssh url git@github.com:<you>/<yourRepo.git>
    (而不是昨天你問題中的https)

為了清楚起見,您需要首先在GitHub上創建遠程倉庫:推送到不存在的倉庫會產生該錯誤。

通常,ssh url不工作意味着所述URL不是按照ssh期望的方式編寫的。
由於~/.ssh/config中的ssh config文件,ssh可能會期望不同的URL。

我用sudo運行命令並多次檢查repo。

你沒有用sudi運行你的ssh git@github.com ,這意味着你的push命令也不需要sudo

仔細檢查您的 git 配置core.sshCommand是否符合預期。

在這種情況下,我還通過將我的.gitconfigC:\Users\<User>\.gitconfig到 WSL 中的~/.gitconfig而結束了這種情況,但沒有意識到沿着路徑復制到 ssh 可執行文件。 在 WSL 中,該配置隱藏了默認設置; 默認應該運行。

所以我不得不跑

git config --global --unset core.sshCommand

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM