GitHub错误信息 - 权限被拒绝(publickey)
GitHub报错信息 - 权限被拒绝(publickey)的原因及解决方法
在~/.ssh目录下创建了一个config文件吗?它应该包含如下内容:
Host github.com IdentityFile ~/.ssh/github_rsa
假设你创建了一个名为github_rsa的ssh密钥,并将其上传到GitHub...
注意:如果你的~/.ssh/目录下有多个密钥(2个及以上),你必须按照上述方式进行显式配置。如果不以这种方式指定密钥,则会选择并使用顺序中的第一个密钥进行GitHub身份验证,因此这取决于密钥文件名。
我生成了ssh密钥,并且在很长一段时间内都能够正常工作,没有任何问题。有一天,我重启后,它停止工作了,尽管密钥在github和我的本地系统上都是完好无损的。我添加了“config文件”,指定了映射到域名的密钥。详细信息请参见igor-ganapolsky-answer中提供的内容。现在它正常工作了!
这确实解决了我的问题!非常感谢!但我有一个问题。在使用你的方法之前,ssh -T git.com
的响应是正确的,但git push -u origin master
会出现与问题中相同的错误。为什么我可以正确连接它,但无法推送或拉取它?
我遇到了同样的问题。你找到答案了吗?
我在这个主题上找到的每个教程和笔记都假定id_rsa和id_rsa.pub是第一个且唯一的SSH密钥。谢谢你提供这个方法。
它对我有用!我在我的系统上有两套密钥,这个解决方案解决了我的问题。不过这个解释更详细here。
它适用于多个密钥。你必须确保你的config文件格式正确且缩进正确。
今天它解决了我的问题,这个config文件可以配置多个仓库,每个仓库都有不同的ssh密钥。
对于gists,我必须添加一个通配符前缀:Host *.github.com
使用以下命令添加这个配置:cd ~/.ssh/ nano config Host github.com IdentityFile ~/.ssh/github_rsa 保存并退出文件,按Ctrl + X,然后按Y,最后按Enter。
你救了我一命,谢谢!
GitHub错误消息 - 权限被拒绝(publickey)的原因和解决方法
当遇到GitHub错误消息“权限被拒绝(publickey)”时,可能是由于以下原因导致的:
1. 在添加SSH密钥后,没有将SSH密钥添加到SSH代理中。
解决方法:ssh-agent -s
ssh-add ~/.ssh/id_rsa
2. 如果在MacOS X上出现“无法打开到身份验证代理的连接”错误消息。
解决方法:eval `ssh-agent -s`
使用:ssh-add ~/.ssh/github_rsa
3. 在重启计算机后,发现相同的问题再次出现。
解决方法:可以使用多种选项来自动启动SSH代理,可以参考unix.stackexchange.com/questions/90853/…中的说明。通常都会使用keychain工具(funtoo.org/Keychain)来实现。
4. 如果在已经在GitHub账户和系统中设置了SSH密钥的情况下出现了问题,可能是系统不再识别该密钥。
解决方法:可以通过命令ls -al ~/.ssh
查找相关的SSH密钥,然后使用ssh-add ~/.ssh/
命令添加。
5. 如果出现“/Users/rleach/.ssh/id_rsa: No such file or directory”错误消息。
解决方法:可能是SSH配置文件命名错误,确保文件名为“config”而非“config.txt”。
6. 如果存在多个身份标识,可以使用以下命令添加:
ssh-add ~/.ssh/id_a
ssh-add ~/.ssh/id_b
7. 如何避免每次都需要输入命令的问题?
解决方法:可以尝试使用eval `ssh-agent -s`
命令,或者使用自动化脚本来实现。
请注意,在需要拉取或推送项目时,需要在项目所在目录中运行上述命令。
通过上述解决方法,可以解决GitHub错误消息“权限被拒绝(publickey)”的问题。
GitHub错误消息-权限被拒绝(publickey)的出现原因是用户没有设置SSH密钥,或者密钥与GitHub账户未关联。解决方法有两种:一种是在机器上设置SSH密钥,具体操作可以参考GitHub的帮助文档(https://help.github.com/articles/generating-ssh-keys);另一种是使用HTTPS URL而不是SSH/git URL,以避免处理SSH密钥的问题,这是GitHub推荐的方法(https://help.github.com/articles/set-up-git)。
此错误不仅限于GitHub,BitBucket也会出现相同的错误。可以通过使用ssh -vT git.com
命令从GitHub的帮助页面(https://help.github.com/articles/error-permission-denied-publickey)来调试仓库使用的密钥。
如果在GitHub上切换了HTTPS和SSH,系统会记住这个设置并应用到所有仓库。建议在本地设置SSH可以避免未来遇到相同的问题。
此外,还有其他一些解决方法,例如检查命令是否从具有SSH密钥的账户发送,以及使用HTTPS URL并使用凭据助手缓存本地凭据。
总之,设置SSH密钥或使用HTTPS URL可以解决GitHub错误消息-权限被拒绝(publickey)的问题。