多语言展示
当前在线:571今日阅读:19今日分享:20

git 无法进行项目推送的原因及解决方法

在Win7本地平台上向Github进行网络连通性测试。输入“ssh -T git@github.com”,结果出现“Permission Denied(publickey)”
工具/原料

Git Bash

方法/步骤
1

原因分析:在Github for Windows默认的安装配置中,SSH的配置文件ssh_config中的“IdentityFile“与实际情况不相符。       a、查看SSH配置文件ssh_config,       路径为:C:\Users\xxx\AppData\Local\GitHub\PortableGit_6d98349f44ba975cf6c762a720f8259a267ea445\etc\ssh      b、密匙文件的存放路径:      C:\Users\xxx\.ssh/*xxx表示本机用户名*/      查看SSH的配置文件ssh_config,发现其中的“IdentityFile”这项信息的内容是“~/.ssh/github_rsa”而实际上,通过命令“ssh-keygen”生成的新的SSH密匙的全路径名为:“~/.ssh/id_rsa”和“~/.ssh/id_rsa.pub”。        如上所述,SSH的的配置文件ssh_config中的“IdentityFile”项的值与实际新创建的密匙全路径名不相符,结果导致本地的SSH工具无法找到到正确的密匙,进而无法同已经上传到Github密匙相匹配,结果就出现了“Permission denied (publickey)”这样的错误。

2

解决方法:1、重装Github for windows      重装后的密匙文件的存放路径(C:\Users\Administrator\.ssh)下,有四个密匙文件,分别是github_rsa和github_rsa.pub,id_rsa和id_rsa.pub,这样,用户就不用自己新建密匙文件了,只用将“github_rsa.pub”中的内容上传到Github网站的个人SSH管理中即可。2、手动修改SSH的配置文件ssh_config中的“IdentityFile”字段。     在生成新的密匙文件后,若新生成的密匙文件名字为“id_rsa”,则将ssh_config配置文件中的“IdentityFile”项的值改为“~/.ssh/id_rsa”3、手动修改新生成的密钥文件名。     将新生成的密匙文件名字改为“github_rsa”,从而与ssh_config配置文件中的“IdentityFile”项的值相同。

注意事项

此方法同样适用于向bitbucket上推送代码。

推荐信息