使用公钥认证无密码推送代码到GitHub

陪她去流浪 桃子 2015年11月09日 编辑 阅读次数:3028

(采用每次推送时输入用户名、密码的方式推送代码到Github的方式我使用了两年之久。)

通常,我们在 Github 上 clone 自己或别人的代码时,采用的语法一般是:

$ git clone https://github.com/<username>/<project>.git

查看远程仓库,此时的仓库访问方式是 HTTPS:

$ git remote -v
origin	https://github.com/<username>/<project> (fetch)
origin	https://github.com/<username>/<project> (push)

,但 HTTPS 方式的GIT不支持 公钥认证,所以需求将推送(PUSH)时的协议改成支持 公钥认证的协议,比如 GIT,好在GitHub同时这些协议:

$ git remote set-url origin git@github.com:<username>/<project>.git

,现在的话,协议已经变成使用GIT协议了,GIT协议是支持公钥认证的:

$ git remote -v
origin	git@github.com:<username>/<project>.git (fetch)
origin	git@github.com:<username>/<project>.git (push)

好,还需要最后一步,把自己电脑的公钥加入到GitHub授权的SSH-KEY中:

# 查看电脑上的SSH公钥
$ cat ~/.ssh/id_rsa.pub
ssh-rsa <此处省略若干字符> twofei@ubuntu

# 如果不存在,那就用 ssh-keygen 生成一个吧,很简单的

复制上面那一串长长的文本,粘贴到GitHub的公钥列表即可:

然后,然后就不再需要密码push了。

参考

标签:ssh · git · github