git push不想输入用户名和密码

来源:互联网 发布:mac安装不上flash 编辑:程序博客网 时间:2024/04/28 19:54

昨天开小组会的时候被鄙视了一下,现场改了一点代码,然后要上传到github上,git push后需要输入用户名和密码,一次还好,后来经常修改,每次都要输入用户名和密码,非常的麻烦,就被老板鄙视了,说可以直接记录,不需要每次都要输入,回来查了一下,发现可以,而且只需要很简单的设置,这里记录一下。

之所以每次都需要输入用户名和密码,是因为是采用的http的方式来push的,不信,你可以打印git remote -v看看,输出的应该不管是fetch还是push都是采用的http@github.com。这里我们只要把这个东西改成git@github.com就可以了。git@github.com这种方式就是采用的ssh的方式来进行push和fetch,这样每次push的时候,只要去查对应的shh key就可以了,不需要每次都输入用户名和密码。

git remote rm origin
git remote add origin git@github.com:用户名/git包.git
</pre><p>第一句是把现在的origin的方式删掉,第二句是增加新的,本以为这样就可以了。但是再次push的时候,报错。</p><p></p><pre name="code" class="java">permission denied (public key)
这里的原因是在github上没有本机的ssh-key。本机的ssh key也可能已经过期了,所以我们应该首先先创建新的ssh key,然后在github上编辑新的key。

ssh-keygen
中间不需要输入任何的东西,直接按回车就是默认的选项。指导提示结束,结束就是一个类似于二维码的东西。

然后打开ssh-key,把里面的东西复制一下。~/.ssh/id_rsa.pub 这个就是生成的ssh key的目录文件。复制好这里面的东西。在浏览器中登录你的github账户,在个人主页里,有个edit your profile,在左侧菜单里,有一个ssh key,点击,右边又会出现add ssh key。添加,标题可以写你现在用的哪个机器,内容就把刚刚复制的ssh key粘贴进去,保存就ok了。

再次尝试push,发现,还是有错误。。

Agent admitted failure to sign using the key
出现了这个问题,这个问题我感觉是本机没有识别到这个ssh key,这个好解决,只要再打一个命令。

ssh-add
就可以解决了。

不用每次输入用户名和密码的感觉,真好





1 0