权限被拒绝(公钥)。致命错误:无法从远程仓库读取。

4
我在.git/config中有以下内容。
  1 [core]
  2     repositoryformatversion = 0
  3     filemode = true
  4     bare = false
  5     logallrefupdates = true
  6 [remote "origin"]
  7     url = git@github.com:monajalal/instagram-scraper.git
  8     fetch = +refs/heads/*:refs/remotes/origin/*

当我试图将更改推送到主分支时,出现以下错误:
$ git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我尝试了这两种方法,但仍然出现错误:

2150  git remote set-url origin https://github.com/monajalal/instagram-scraper.git
 2154  git remote set-url origin git@github.com:monajalal/instagram-scraper.git


mona@pascal:~/computer_vision/instagram/instagram$ git log
commit e69644389a5c7be65ae6eae14d74065e221600cb
Author: Mona Jalal <jalal@cs.wisc.edu>
Date:   Wed Mar 1 17:48:00 2017 -0600

    scrapy for instagram skeleton
mona@pascal:~/computer_vision/instagram/instagram$ git status
On branch master
nothing to commit, working directory clean


$ uname -a ; lsb_release -a
Linux pascal 3.13.0-62-generic #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.5 LTS
Release:    14.04
Codename:   trusty

请提出修复建议。

3
权限拒绝(公钥),您是否已在 GitHub 帐户中添加了您的公钥(~/.ssh/id_rsa.pub)? - Sajib Khan
2个回答

8
如果您没有正确设置GitHub的ssh密钥, 您可以至少尝试使用https(您提到的):
git remote set-url origin https://github.com/monajalal/instagram-scraper.git

那将要求您输入您的GitHub帐户的用户名(monajalal)/密码。
这将起作用,因为您拥有该存储库,这意味着您有权进行推送。 确保您已经在本地进行了提交,以便进行推送。
git add .
git commit -m "new commit"

git push -u origin master

你可能被迫执行git push -f的原因在于目标(远程 GitHub 存储库)不是空的,而是包含自己的提交(通常是README.mdLICENSE文件)。在这种情况下,最好使用Git 2.9或更高版本执行以下操作:
git config --global pull.rebase true
git config --global rebase.autoStash true

那么

git pull

那将会在(从GitHub获取的)存储库中的提交之上重放你的本地提交。
然后,一个简单的git push -u origin master就可以了。不需要强制推送你的历史记录。

0

可能不是最好的解决方案,但考虑到在我创建的github存储库中没有任何内容,我使用了以下命令,并且它起作用了:

git push -f origin master

如果你告诉我你的错误信息,我本来就可以告诉你这个答案。 - VonC
2
我已经编辑了我的答案,解释了为什么你必须要进行强制推送。但是,在 Stack Overflow 上提问时,你不能只说“它不起作用”。添加错误消息将有助于我们帮助你。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接