使用公钥认证无密码推送代码到GitHub
(采用每次推送时输入用户名、密码的方式推送代码到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了。