今天在本机windows7上测试个git,想将git代码推送到代码服务器。结果git总是报错
$ git push -u origin mastergit@192.168.0.208's password:Permission denied, please try again.git@192.168.0.208's password:Connection closed by 192.168.0.208 port 22fatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.
都试了几次都是同样的报错,尝试过修改git服务器上的用户的密码,尝试更换git上的账号,报错依然存在,git一直报权限被拒绝,请重试。
实在没办法了,想试试使用ssh-key免密登录看是否能解决。
1.首先在项目根目录的空白处右键单击【git bash here】
2.在bash命令行内输入以生成ssh的公钥和私钥,默认会放在C:\Users\Administrator\.ssh目录下
#进到ssh根目录cd ~/.ssh/#设定git账号和邮箱git config --global user.name "zhangsan"git config --global user.email "45090436@"#生成ssh密钥,可选是否加邮箱,如果不加就去掉-C参数和邮箱(正常情况下一路回车)ssh-keygen -t rsa -C "45090436@"#假如以前可能生成过密钥,所以她可能会提醒你是否要覆盖(y/n)?输入y并回车即可。
3.查看公钥,并将查看到的一坨密钥全部拷贝走(连同邮箱)备用。
cat id_rsa.pub
4.登录git服务器zhangsan账号(刚才bash里敲的用户也是zhangsan),然后在该用户的“设置---SSH KEY”里添加上刚才查到的公钥。
5.在bash里别忘记退回到我们的项目目录
#我的项目放在d盘的目录里,先进d盘cd /d/#再进项目根目录cd CsharpTemp/hellowordNetCore/HelloworldForLinuxDocker/
6.再次提交代码
git add .git commit -m "x the first commit netcore code for linux docker"git push -u origin master
可以看到我们这次确实免密推送代码到git服务器成功了。
不知道是啥原因,猜测可能是因为其他的git账号我做过免密登录。不管了,反正问题解决了,就这样吧。
----------川建国:没有人比我更懂git----------------------