Git推送:权限被拒绝(公钥)

110

我正试图将一个文件推送到我的朋友的git仓库,但是公钥出现了错误。

git push origin testbranch
Permission denied (publickey).
fatal: Could not read from remote repository.

我们在哪里以及如何定义公钥/私钥?

git remote -v返回:

origin  git@github.com:Sesamzaad/NET.git (fetch)
origin  git@github.com:Sesamzaad/NET.git (push)

非常感谢您的帮助。


嗨@wyguf,请在我的回答有帮助的情况下接受它。 :) 谢谢 - Shrutee
3
“\302\226git@github.com: Permission denied (publickey).”这句话的意思是:当我从Github复制远程URL时,出现了一些无关紧要的字符,导致我无法访问该仓库,出现了“Permission denied (publickey)”错误。 - jozxyqk
Luan Si Ho的解决方案对我起作用了。 - Umer Khalid
23个回答

0

你需要将项目 fork 到你自己的用户存储库中。

然后执行 add origin 命令:

git remote add upstream your-ssh-here
git fetch upstream
git branch --set-upstream-to=upstream/master master

-1

适用于Windows 10

  1. 在命令提示符中输入以下内容: ssh-keygen

  2. 默认情况下,系统将密钥保存在C:\Users\your_username/.ssh/id_rsa。您可以使用默认名称,也可以选择更具描述性的名称。如果您正在使用多个密钥对,则可以帮助区分密钥。要使用默认选项,请按Enter键。

注意:如果已经存在同名文件,系统会询问您是否要覆盖该文件。

  1. 你将被要求输入密码短语。按 Enter 键跳过此步骤。

  2. 系统将生成密钥对,并显示密钥指纹和一个随机艺术图像。

  3. 打开您的文件浏览器。

  4. 导航到 C:\Users\your_username/.ssh。

  5. 您应该看到两个文件。标识保存在 id_rsa 文件中,公钥标记为 id_rsa.pub。这是您的 SSH 密钥对。

  6. 复制密钥,包括“ssh-rsa”,但不包括计算机名称结尾部分

  7. 前往https://github.com/settings/ssh 添加您的 SSH 密钥

  8. 进入 repo 文件夹并使用以下命令添加您的用户名: git remote add origin git@github.com:git_hub_user_name/your_repo_name.git

  9. ssh -T git@github.com

现在您应该看到成功信息。


-1

如果您遇到403错误,这里是解决方案:

 The requested URL returned error: 403

由于您的帐户已经与另一个帐户注册,因此您需要从 Windows 中删除 Github 凭据。

control panel > user accounts > credential manager > Windows credentials > Generic credentials

then remove the Github keys

我没有使用Windows。OP也没有说他在使用什么操作系统。 - Garrett

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