git 无法进行项目推送的原因及解决方法
在Win7本地平台上向Github进行网络连通性测试。
输入“ssh -T git@github.com”,结果出现“Permission Denied(publickey)”
操作方法
- 01
原因分析: 在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)”这样的错误。
- 02
解决方法: 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”项的值相同。