教育

如何使用特定的SSH Key提交GIT

2017-08-18  本文已影响0人  keysaim

问题提出

最近在自己的MAC上面提交Github代码的时候发现居然失败了:

$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这不是坑爹吗,Github都提交过无数次了,咋就失败了呢?莫非Github上的ssh key被删掉了么。于是打开github ssh,尝试再次把ssh key加上,却提示key已经存在了。于是赶紧回到本地repo查看下用户是不是对的:

$ git config -l
...
user.email=keysaim@gmail.com
user.name=keysaim

再查看下本地的ssh key:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCu4Jy/+uFGiC89luBejzCEyPbY0SRoppyzrB4g1v3zv1OleylMzdf+eTTRcYgMbYoY6ZQs4M2NHX20iO6vf6j2uPvUsB++pP0G6Q7+VlrUlC19B07IVx7Mo2xmHCe4bMshFSugqOl+hV6zVjGpYJcLI9XtWQ6F/br4tkYD/J8KWns+SNha8gJVBckV1ncGlR+Q7ji4OM4+eIhKEEK4Wo7Cf7KaT71fIVFl7XRx5kmdtEN3F+wT4LjNb2okl8Pu4mmxCMwJvXzj0Jr9PkVzhSAhDkWG3mMt3kC5PhhRhCP7uwkGFsOEm5uGS907wTxY9cJNIl8FikOfmvDa5XrfMbMx nbaoping@xxx.com

发现邮件居然是nbaoping@xxx.com(此处已打码),显然跟本地repo的keysaim@gmail.com不同,git提交的时候没有特殊配置,会使用默认的ssh key,也就是~/.ssh/id_rsa.pub,而提交的用户信息跟此key并不能对应上,故此github拒绝了此次提交。既然如此,那把本地repo的用户信息改成key所对应的信息不就好了吗?是的,但是此信息都已经打码了就充分说明本博主是十分不愿暴露它的,咱必须得想其它辙。

好了,现在的问题就是,如何使用特定的ssh key提交Git?本文就来讲述一种通用的解决办法。

指定git提交使用的ssh key

结语

当你需要把某些repo以不同的用户提交的时候,可以按照本文给他们配置特殊的ssh key,但是注意的一点就是,这种配置事基于Host,也就是repo的hostname,如果需要确保不同的repo使用不同的ssh key,需要每个repo使用不同的hostname。

本文也可以在博主个人博客中查看

参考

上一篇 下一篇

猜你喜欢

热点阅读