200

我已按照以下说明上传项目。

全局设置:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email tirenga@gmail.com
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:tirenga/tirenga.git
  git push origin master

但我得到这个错误:

权限被拒绝(公钥)。致命:远端意外挂断

4

23 回答 23

128

我不得不将我的公钥添加到 github。https://help.github.com/articles/generating-ssh-keys

于 2010-09-01T12:42:20.207 回答
29

创建 RSA 密钥对后,您必须使用以下命令将其添加到 SSH:

ssh-add ~/.ssh/id_rsa

或您创建 rsa 密钥对的任何地方。

于 2014-10-10T23:33:59.740 回答
28

是的,这是一个公钥问题。 我是Windows用户,下面的页面帮助我解决了这个问题。

http://help.github.com/win-set-up-git/

更准确地说,这个链接应该会有所帮助

https://help.github.com/articles/error-permission-denied-publickey

于 2012-05-28T08:20:11.240 回答
26

对我来说,问题是通过 sudo 执行克隆。

如果您克隆到您拥有用户权限的目录(/home/user/git),它将正常工作。

(说明:以超级用户身份运行命令将无法使用与以用户身份运行命令相同的公钥。因此 Github 拒绝了连接。)

此解决方案需要已设置 SSH 密钥:https ://help.github.com/articles/generating-ssh-keys

于 2014-09-17T07:39:10.137 回答
18

使用您的用户名和存储库名称键入以下命令:

git clone https://github.com/{user name}/{repo name}

在 Ubuntu 中,这非常有效。

于 2012-08-27T17:41:50.423 回答
16

经过很长时间的教程,我得到了解决方案。

我按照此链接上的 github 教程进行操作 -> https://help.github.com/articles/error-permission-denied-publickey并且我能够在每个步骤中进行连接。但是当我试图git push -u origin master我得到这个错误:

权限被拒绝(公钥)。致命:无法从远程存储库中读取。

请确保您拥有正确的访问权限

我就是这样修的!! 使用终端进入项目目录并查看

$git remote -v

你会得到这样的东西:

origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (push)

如果您使用与git@github.com不同的任何东西,请键入以下命令打开 git 目录中的配置文件:

vi .git/config

并配置线路

[remote "origin"]

url = ssh://git@github.com/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/
于 2013-09-24T22:55:54.187 回答
6

就我而言,我必须为另一个用户设置公钥,因为我已经为我的主要用户设置了一个。一旦我切换了用户并执行了上面链接中的命令,我就可以毫无问题地为我的测试服务器执行设置。

于 2012-01-11T09:44:42.050 回答
5

我遇到了这个问题,但上面的解决方案都没有奏效。我可以克隆和获取但无法推送。最终,我发现问题出url在 my.git/config中,应该是:

git@github.com:<username>/<project>

(不是ssh://github.com/<username>/<project>.githttps://github.com/<username>/<project>.git)。

于 2013-03-23T03:38:48.140 回答
5

鉴于这里没有任何答案对我有用,我终于找到了我使用 ssh -vT git@bitbucket.org 连接到 Bitbucket(或 Github,在这种情况下无关紧要)的问题。

在我的情况下,失败是由于使用 DSA 密钥而不是 RSA,显然我的 SSH 客户端不再允许这样做。

debug1:跳过 ssh-dss 密钥 /c/Users/USER/.ssh/id_dsa 不在 PubkeyAcceptedKeyTypes 中

解决方案是将其添加到 .ssh/config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

这优雅地将 ssh-dss 密钥类型附加到所有现有接受的公钥类型之后,完成此操作后,git 现在可以 ssh 进入 Bitbucket 没有问题。

于 2015-09-16T06:09:09.443 回答
3

我的问题是,每次我在我的 mac 终端上输入时,我都试图给我的 ssh 密钥一个特定的名称。ssh-keygen

我只留下“ssh-keygen”生成的名称 = 解决了这个问题id_rsa。您最终将在 Mac 上的 .ssh 文件夹中获得 2 个密钥id_rsa,这是您的私钥id_rsa.pub,而 是您的公钥。然后我将代码复制并保存id_rsa.pub到我的 GitHub 帐户设置中,就是这样。问题解决了。

于 2016-02-21T01:57:32.640 回答
2

如果您在计算机上安装了 git,这是一个很好的选择:

http://help.github.com/mac-set-up-git/

于 2011-04-11T15:42:20.907 回答
2

添加公钥是解决方案。对于生成 ssh 密钥:https ://help.github.com/articles/generating-ssh-keys 有分 步说明。

但是,如果没有以正确的方式生成密钥,问题可能会持续存在。我发现这也是一个有用的链接:https ://help.github.com/articles/error-permission-denied-publickey

就我而言,问题是我在不使用 sudo 的情况下生成 ssh-key,但是在使用 git 命令时我需要使用 sudo。上面链接中的这条评论“如果您在没有 sudo 的情况下生成 SSH 密钥,那么当您尝试使用 sudo git push 之类的命令时,您将不会使用您生成的 SSH 密钥。” 帮助过我。

因此,解决方案是我必须将 sudo 与密钥生成命令和 git 命令一起使用。或者对于其他人,当他们在任何地方都不需要 sudo 时,不要在这两个步骤中的任何一个中使用它。(密钥生成和 git 命令)。

于 2014-03-12T18:41:26.830 回答
1

在 Windows 中运行 SSH 或 Git Clone 时,我遇到了类似的问题。以下发现有助于解决我的问题:

  • 当您运行“rhc setup”或其他 ssh 方法生成 ssh 密钥时,它将在您的主文件夹的 .ssh 文件夹中创建私钥文件 id_rsa,默认为 C:\User\UserID
  • Git for windows 在其安装目录中有自己的 .ssh 文件夹。当你运行 git/ssh 时,它会在这个文件夹中寻找私钥文件 id_rsa
  • 通过将主文件夹 .ssh 文件夹中的 id_rsa 复制到 git 安装目录下的 .ssh 文件夹解决了问题

另外,我认为有一种方法可以“告诉” git 使用主文件夹中的默认 .ssh 文件夹,但仍需要弄清楚如何使用。

于 2014-09-24T02:16:24.977 回答
1

对我来说,它是这样工作的:

在 GitHub 中,我将ssh链接更改为https,然后给出以下命令:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master
于 2017-04-06T01:35:35.837 回答
1

您可以尝试将您的类型连接更改为从 ssh 到 https 的分支。

  1. nano project_path/.git/config
  2. 替换git@github.com:username/repository.githttps://username@github.com/username/repository_name.git
  3. 保存文件ctrl+o

之后,您可以尝试git pull不使用公钥

于 2018-10-24T20:20:52.257 回答
0

在 windows 商店使用 ubuntu

用于 linux 的 windows 子系统

,您的 git push 将适用于不同的帐户。

于 2017-10-03T15:59:41.233 回答
0

如果您使用的是 linux 机器,请检查,

  • 你有没有安装 Openssh
  • 如果你这样做了,那么你是否有一个现有的公钥,否则你必须生成一个。
  • 是您添加到您的 github 帐户的公钥。

生成新的 SSH 密钥并将它们添加到我的 Github 帐户解决了我的问题。您可以查看此页面以获取更多详细信息。帮助

于 2018-01-05T00:24:55.347 回答
-1

您需要设置 SSH 密钥。

这个 GitHub 页面解释了如何生成密钥。

如果您有现有密钥,请将其复制$HOME/.ssh/id_rsa.pub并粘贴到GitHub SSH 设置页面

于 2013-01-06T15:10:22.007 回答
-1

如果您使用的是 Mac,解决此问题的一种快速方法是退出 OSX 应用程序并重新登录。

于 2014-04-08T23:32:45.790 回答
-1

我的问题是它不适用于我的私钥上的密码。

希望对某人有所帮助。

于 2017-09-01T09:37:16.183 回答
-2

我今天也有这个问题。解决方案是设置您的“ssh 密钥”。点击下面的网址,按照步骤操作,就可以解决了。

http://github.com/guides/providing-your-ssh-key

于 2013-01-05T16:11:24.120 回答
-3

我尝试了提到的解决方案,但仍然失败。我在这里找到了最终对我有用的解决方案- 删除然后重新添加远程链接

于 2014-02-25T04:07:05.347 回答
-4

我在 Windows 上遇到了同样的问题。我从 SSH 切换到 HTTPS 并运行了 Git PUSH。

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

成功的!希望这可以帮助。

于 2016-04-14T09:45:35.503 回答