GitHub:权限被拒绝(publickey)。 致命的:远端意外挂断
我按照以下说明上传了一个项目。
全局设置:
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
但是我得到这个错误:
权限被拒绝(publickey)。 致命的:远端意外挂断
对我来说,问题是通过sudo执行克隆。
如果你克隆到你有用户权限的目录(/ home / user / git),它将正常工作。
(解释:以超级用户身份运行一个命令不能像用户一样运行相同的公共密钥,因此Github拒绝连接。)
此解决scheme需要已经build立SSH密钥: https : //help.github.com/articles/generating-ssh-keys
我不得不把我的公钥添加到github。 https://help.github.com/articles/generating-ssh-keys
是的,这是一个公钥问题。 我是一个Windows用户,下面的页面帮助我解决这个问题。
更确切地说,这个环节应该有所帮助
https://help.github.com/articles/error-permission-denied-publickey
在创buildRSA密钥对后,您必须使用以下命令将其添加到SSH:
ssh-add ~/.ssh/id_rsa
或者你创build你的rsa密钥对的地方。
使用您的用户名和存储库名称键入以下命令:
git clone https://github.com/{user name}/{repo name}
在Ubuntu这个完美的作品。
经过很长时间的教程,我得到了一个解决scheme。
我遵循这个链接上的github教程 – > https://help.github.com/articles/error-permission-denied-publickey ,我能够在每一步连接。 但是当我试图git推-u起源高手,我得到这个错误:
权限被拒绝(publickey)。 致命的:无法从远程存储库读取。
请确保您拥有正确的访问权限
多数民众赞成我是如何解决它! 转到使用terminal项目目录,并检查出来
$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目录下的configuration文件:
vi .git/config
并configuration线路
[remote "origin"] url = ssh://git@github.com/yourGithubUserName/yourRepo.git fetch = +refs/heads/*:refs/remotes/origin/
在我的情况下,我不得不为另一个用户设置公钥,因为我已经有一个用于我的主用户。 一旦我切换用户并执行上述链接中的命令,我就能够毫无问题地为我的testing服务器执行安装程序。
我有这个问题,但以上解决scheme都没有工作。 我可以克隆和获取,但不能推。 最终,我发现问题出在我的.git/config
的url
中,应该是:
git@github.com:<username>/<project>
(不是ssh://github.com/<username>/<project>.git
或https://github.com/<username>/<project>.git
)。
鉴于这里没有任何答案为我工作,我终于用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密钥types附加到所有现有的公共密钥types,并在完成后,git现在可以ssh到Bitbucket没有问题。
我的问题是,当我在我的Macterminal上inputssh-keygen
,我试图给我的ssh密钥一个“ SPECIFIC NAME” 。
我通过只留下“ssh-keygen”generate = id_rsa
这个名字来解决这个问题。 你最终会在你的.ssh文件夹中有两个密钥,你的私钥是id_rsa
,而你的公钥是id_rsa.pub
。 然后,我将id_rsa.pub
的代码复制并保存到我的GitHub帐户设置中,就是这样。 问题解决了。
如果你在你的电脑上安装了git,
添加公钥是解决scheme。为了生成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密钥。 帮助过我。
所以,解决的办法是,我必须使用键生成命令和git命令使用sudo。 或者对于其他人,当他们不需要任何地方时,不要在两个步骤中使用它。 (密钥生成和git命令)。
在Windows中运行SSH或Git Clone时遇到类似的问题。 以下发现有助于解决我的问题:
- 当你运行“rhc setup”或者其他的ssh方法来生成ssh密钥时,它会在你的home文件夹的.ssh文件夹下创build私钥文件id_rsa,默认是C:\ User \ UserID
- Git for windows在其安装目录中有它自己的.ssh文件夹。 当你运行git / ssh时,它会在这个文件夹中查找私钥文件id_rsa
- 通过将主文件夹.ssh文件夹中的id_rsa复制到git安装目录中的.ssh文件夹解决了这个问题
此外,我想有一种方法来“告诉”混帐使用默认的.ssh文件夹在主文件夹中,但仍然需要弄清楚如何。
对我来说,它是这样工作的:
在GitHub中,我将ssh
链接更改为https
,然后发出以下命令:
$ git init $ git remote add origin https:... $ git add . $ git commit -m "first commit" $ git push origin master
在Windows商店使用Ubuntu的
windows子系统为linux
,你的git push会在不同的账号上工作。
您需要设置SSH密钥。
这个GitHub页面介绍了如何生成密钥。
如果你有一个现有的密钥,你复制$HOME/.ssh/id_rsa.pub
并粘贴到GitHub SSH设置页面 。
如果您使用Mac,快速解决此问题的方法是退出OSX应用程序并重新login。
我的问题是,它没有在我的私钥上使用密码。
希望能帮助别人。
我今天也有这个问题。 解决scheme是设置你的“SSH密钥”。 点击下面的url,按照步骤操作,然后你就可以清除它。
我尝试过提到的解决scheme,但仍然失败。 我发现终于在这里工作的解决scheme – 删除然后重新添加远程链接
我在Windows上有同样的问题。 我从SSH切换到HTTPS并运行Git PUSH。
git push -u origin master Username for 'https://github.com': <Github login email> Password for <Github login>: xxx
成功了! 希望这可以帮助。