????git连接远程仓库一般都是以下两种方式。
一.http/https连接
????这种方式最简单,只需要在连接的时候输入正确的账号和密码即可。配合一些IDE使用的时候,如Android Studio,Idea等,会在pull/push的时候弹框输入账号和密码。如果不想每次都输入账号密码可以选择在git远程仓库的路径上加上工程所要推送的远程仓库的账号密码。例如: ????原url:https://xxx.com/authorName/projectName.git ????新url:https://username:password@xxx.com/authorName/projectName.git ????原url需要每次都输入账号密码,加上[账号]:[密码]@的新url后就不需要了。当然IDE也支持remember记住账号密码的方式方便pull/push操作。使用IDE记住账号密码方式时,如果不小心输错账号密码并且选择了remember,那么就会提示报错:unable to read askpass response from " "。这种情况参考在url加上[账号]:[密码]@方式。
二.SSH秘钥连接
????SSH(Secure Shell)是一种安全协议,在你的电脑与Git服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。这种方式是目前使用最多的,配置简单,使用方便。mac创建步骤如下:
-
创建SSH秘钥 1)终端输入 ssh-keygen -t rsa -C “username” (注:username为你git上的用户名,一般是你的邮箱地址)。 2)确定后提示 Enter file in which to save the key : 这一步是设置rsa的文件名和路径,一般默认即可。 3)确定后提示 Enter passphrase (empty for no passphrase) : 可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。完成后即创建SSH秘钥成功。 -
找到SSH的公钥文件id_rsa.pub,拷贝内容 在.ssh文件目录下可以看到新增的id_rsa文件和id_rsa.pub文件,其中id_rsa文件是私钥文件,切记私钥文件不可泄露。id_rsa.pub文件是公钥文件,拷贝内容。 -
在Git上配置SSH秘钥 git远程仓库上配置的SSH秘钥其实就是你本地的公钥(id_rsa.pub文件)。配置SSH秘钥只需要输入标题和秘钥内容,标题随意填写,秘钥内容就是id_rsa.pub公钥文件的内容。配置完成后使用SSH秘钥连接就不需要使用账号密码了。
三.SSH秘钥注意事项
- 配置多个SSH秘钥
当需要运行不同公司、不同平台等多个项目时,可能会需要配置多个SSH秘钥。当然使用同一个SSH秘钥也是可以的。配置多个SSH秘钥步骤和前面创建SSH秘钥步骤差不多,需要注意的有: 1)终端输入 ssh-keygen -t rsa -C “username” (注:username需要和已经创建过的秘钥username不同)。 2)确定后提示 Enter file in which to save the key : 这一步是设置rsa的文件名和路径,输入/Users/xxx/.ssh/id_rsa_new ,xxx是你电脑的用户名,id_rsa_new是新秘钥文件的文件名,这个名字是可以任你改变的。但一定要与已经存在的SSH秘钥文件名不相同。 3)确定后提示 Enter passphrase (empty for no passphrase) : 可以直接按两次回车键输入一个空的 passphrase;也可以选择输入一个 passphrase 口令,如果此时你输入了一个passphrase,请牢记,之后每次提交时都需要输入这个口令来确认。完成后即创建SSH秘钥成功。 4)配置config文件:因为有多个SSH秘钥文件,让系统识别它们就需要在电脑的.ssh目录下创建config文件,做如下相应的配置(以github和gitlab为例):
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# gitlab
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
注意: host和hostname 为主机名
IdentityFile 填写文件的路径和生成的文件名(不是.pub的文件)
后面的步骤和前面SSH秘钥连接步骤一样,只需要到项目的相应平台去做SSH秘钥的相应添加就行了,添加的秘钥内容为本地对应的公钥文件内容。
- 更新SSH秘钥
平台填写的秘钥内容为本地的公钥文件内容,公钥内容可以公布,私钥是不能泄露的。如果私钥文件泄露了,就需要更新SSH秘钥了,当然定时更新SSH秘钥也是一个很好的习惯。更新SSH秘钥其实就是创建一个新的SSH秘钥覆盖需要更新的秘钥。 新秘钥的username,id_rsa文件名和需要更新秘钥的username,id_rsa文件名一致即可。 - 使用SSH每次都要输入密码
如果在创建SSH秘钥文件的这一步 Enter passphrase ,你设置了密码,那么使用SSH连接每次都要输入密码,解决思路有两种: 1)去掉密码:重新创建一个没有密码的SSH秘钥覆盖有密码的SSH秘钥 2)保存密码:ssh-add -K ~/.ssh/id_rsa (id_rsa是有密码的秘钥文件) - 设置user.name和user.email
1)设置全局user.name和user.email git config --global user.name “用户名” git config --global user.email “邮箱” 2)设置项目user.name和user.email git config user.name “用户名” git config user.email “邮箱” 如果项目没有单独设置user.name和user.email,默认使用全局的user.name和user.email。
|