与Git平台通讯免输密码配置

一般的Git平台都至少支持2种通讯协议,https 和 ssh,也有部分支持svn之类的。

https这个最简单,大家都会用。私有项目在通讯时会提示你输入用户名和密码,根据提示操作即可。

如果你每天要频繁的pull和push,那这个输入用户名和密码的操作就需要想办法省略掉了,如果你觉得每次输入用户名和密码很有趣,那就不用再往下看了。else 继续看

SSH

使用SSH公钥可以让你在你的电脑和Git平台通讯的时候使用安全连接,下面以国内Git平台 码云为例:

生成ssh公钥

1
2
3
4
5
#在Git Bash中,执行下面命令
ssh-keygen -t rsa -C "xxx@xxx.com"

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看公钥

1
2
3
cat ~/.ssh/id_rsa.pub

ssh-rsa ****B3NzaC1yc2EAAAADAQABAAABAQDkrVA9Fi89sruyhLPhn0NAbAC5D7QwWMs3YYkImkBTwYW6OrfovI2ZNii7hLbo8c2T1cZlZa9Bv3cXHDr20lrJqu5idBNsn3BGk4eWNoUAMf4V53L3mg9SR/0wBNmOCzkI/I3PxvMzFexiOhh4I4tPe2Q21Q7YzFTaO+1xN4v04MDzN3/3qJA5WrvauZRpKW3zy+r/04EXTNaOTV53tNh/o6unvCJuNjBcLaDVs320hEzoHfjYhhaukf7VpmTXKyifQDpLcG3nzRpHX59+29lo/mzgyU3svbrtct7Wdqe10SSAGkHm6NEdpndDwiT1Go0hiS6+LdF0JrG3JK1dtzSV xxx@xxx.com

其实你也可以直接通过编辑器来查看,具体位置:C:\Users{your_username}.ssh\id_rsa.pub

添加公钥到Git平台

通过网页登录Git平台后,一般在个人中心里能看到SSH公钥管理的功能,然后添加进去即可。一般有2个输入项,标题和公钥,标题你自己起个名字就行,用来区别你的电脑,例如公司用,个人电脑等等,公钥就输入上面查看的那一段字符即可。


现在你就可以通过ssh协议与Git平台通讯了,并且不必每次都输入密码。

如果你之前本地有通过https克隆下来的项目,你不必重新去通过ssh克隆一份,修改仓库地址即可。

1
2
3
4
//删除原本的ssh仓库地址
git remote rm origin //origin 代表你原本ssh地址的仓库的别名,一般都用这个名字。
//新增http地址的仓库
git remote add origin http://git.oschina.net/username/project.git

你也可以直接修改git仓库配置文件,在你的git仓库根目录中有个.git文件夹,用编辑器打开里面的config,修改里面的url即可。

1
2
3
4
5
6
7
[remote "origin"]
url = https://git.oschina.net/school1024/xxx.git
fetch = +refs/heads/*:refs/remotes/origin/*

[remote "origin"]
url = git@git.oschina.net:school1024/xxx.git
fetch = +refs/heads/*:refs/remotes/origin/*

你以为到这里就结束,然而并没有,团队里一个老司机换了笔记本,台式机给新人用了,然后不知道他们干了什么,导致台式机SSH公钥混乱了,死活不能用,尝试了各种办法无解。那只能还是通过https协议通讯了。

使用https协议免输密码的2种方式:

修改仓库地址

http://yourname:password@git.oschina.net/name/project.git

注意,码云平台同时支持个性地址与邮箱,当使用邮箱时,请对@符号使用%40替换

配置 credential.helper

1
2
3
4
5
6
7
8
# 默认住密码十五分钟
git config --global credential.helper cache

# 记住3600秒,
git config credential.helper 'cache --timeout=3600'

# 长期记住密码
git config --global credential.helper store
分享到