Git多账号配置及SSH-KEY管理
来源:互联网 发布:python如何连接小票机 编辑:程序博客网 时间:2024/05/15 12:58
最近遇到个问题,码云上有项目、github上也有项目,每次提交的时候都需要输入账号和密码太麻烦了。一想,git这么强大的工具怎么可能会没有可以管理多个账号的方法。找到下面这篇文章太棒了。
Git管理多个SSH密钥,Git多帐号配置
经过一番配置,我成功的实现了多账号的管理,每次提交都不用再输入账号和密码了。下面是我经过上面这个篇试验成功然后总结下。
Git提交的原理
Git提交时有Https和SSH两种验证方式,Https的方式需要帐号和密码比较好理解,不过它需要在每次提交时输入帐号和密码,有点麻烦;而SSH的功能可以粗暴的理解为记住帐号密码,不过对这个过程有人会有点疑惑。首先,我们用SSH命令生成一个公钥-私钥对,我们会把公钥添加到Git的服务器,把私钥放在本地。提交文件的时候Git服务器会用公钥和客户端提交私钥做验证(具体细节不究),如果验证通过则提交成功,那么我们在把公钥添加到服务器的时候肯定是需要登录Git服务器的,这个过程其实可以理解为帐号和密码托管给SSH了,所以也是相当于输入了帐号密码,但是由SSH帮你记住了。这么理解是可以,但是SSH的意义不仅仅是这样,关于SSH的更详细内容看客可以自行再了解。
生成SSH-KEY
因为windows版本的git自带SSH,所以在当前文件夹右键,选择Git Bash Here,会自动在当前文件夹打开一个MINGW的命令行窗体。通过如下命令查看下git版本。
ssh -V
接下来在刚才的文件夹,使用SSH命令在当前文件夹生成一对SSH-KEY:
ssh-keygen -t rsa -C "你的邮箱地址"
出现这个界面是需要输入SSH-KEY的文件名字,这里名字理论上可以随便取,如果你不知道取什么名字你就直接回车就好了,就会生成默认的id_rsa。遇到多个账号的时候我们一般的命名规范就是默认名后面加上平台(例如:id_rsa_oschina或者id_rsa_github)。
当我们输入ssh-key生成的文件明后就会出现输入私钥的密码并确认,为了安全在密码输入的时候不会反显,什么都看不到,这个密码你自己设置,但是你一定要记住:
Enter passphrase (empty for no passphrase):输入密码Enter same passphrase again:确认密码
输入完密码确认后回车,就会出现如下的界面,表示SSH-KEY生成成功。
现在你在当前的文件夹就会找到相应的id_rsa和id_rsa.pub;id_rsa是私钥,id_rsa.pub是公钥。生成SSH-KEY的过程就完成了。
单个账号的配置
首先我们生成我们账号的SSH-KEY,步骤如上“生成SSH-KEY”。
然后找到id_rsa.pub使用文本打开,将内容直接复制。如果是码云平台,在个人中新找到如下界面,然后将刚才复制的内容复制到红色框中,最后点击确定按钮,就添加成功了。
然后把SSH-KEY配置给SSH,让系统的SSH知道这个KEY。Window把id_rsa文件拷贝到C:/Users/你的用户名/.ssh文件夹下。如果没有.ssh这个文件就新建一个。拷贝完成后,把.ssh文件夹下的id_rsa文件添加到SSH-Agent,命令如下:
ssh-add id_rsa文件的路径
如果命令行此时正在.ssh文件夹下:ssh-add id_rsa即可。此时添加时如果遇到错误 `Could not open a connection to your authentication agent.`那就先输入如下命令后重试
eval $(ssh-agent)
如果还不行,请再执行ssh-agent bash命令后重试。如果还不行,请参考:这里
最后,执行以下命名配置Git全局用户和邮箱:
git config --global user.name "你的名字"git config --global user.email "你的邮箱"
配置全局用户和邮箱完成后,我们可以查看C:/Users/你的用户名/.gitconfig即可看到配置,内容大概如下:
[user] name = Kevin_Smile email = 123456789@qq.com
到此配置全部完成,接下来验证下SSH-KEY配置是否成功,在命令窗口中输入如下命令(我是使用的码云平台):
码云
ssh -T git@git.oschina.net
github
ssh -T git@git.oschina.net
此时需要输入刚才生成SSH-KEY时输入的私钥密码回车,如果出现上图内容“Hi SmileToMe!You’ve successfully authenticated,but GitHub does not provide shell access.”就表示链接成功。
多账号配置
Git多账号配置跟单账号配置差不多,下面我们来一起看下。前面生成SSH-KEY的步骤是一样的。现在我们以码云和github两个平台来讲解。
首先生成SSH-KEY,注意在生成SSH-KEY的时候,不同的平台使用不同的名字,例如:id_rsa_oschina和id_rsa_github,就是在默认名+下划线+平台名。
然后到相应的平台配置公钥信息并测试是否可以连接成功。
接下来就是配置私钥的位置,和单个账号配置不一样,单个账号也可以按照多个账号的配置方法配置。配置方法如下:
进入C:/Users/你的用户名/.ssh文件夹,右键新建一个文本文件,改名为config即可。这里要注意,没有.ssh文件夹的要新建一个.ssh名的文件夹。下面来填写config文件的内容,我以Github、Gitlib、OSChina,局域网为例:
Host github.com HostName github.com User smallajax@foxmail.com PreferredAuthentications publickey IdentityFile /home/Workspace/ssh/id_rsa_githubHost gitlib.com HostName gitlib.com User smallajax@foxmail.com PreferredAuthentications publickey IdentityFile id_rsa_gitlibHost oschina.com HostName oschina.com User smallajax@foxmail.com PreferredAuthentications publickey IdentityFile /D/Workspace/ssh/id_rsa_oschinaHost 192.168.1.222 HostName 192.168.1.222 User smallajax@foxmail.com PreferredAuthentications publickey IdentityFile /D/Workspace/ssh/id_rsa_oschina
解释一下,HostName是服务器的地址,User是用户名,PreferredAuthentications照抄即可,这里主要说的是IdentityFile,上面我们看到了三种情况,
- 填私钥文件的本地路径。
- 不论是Linux还是Windows都可以写相对路径,比如把id_rsa_xxx私钥文件放在.ssh文件夹下。
- 文件放在不同跟路径下时,需要写绝对路径
- Linux中没有放在.ssh文件夹内或者子文件夹。
- Windows中没有放在C盘下时。注意据对路径变化,比如C盘下是/C/xo/abc、比如D盘下/D/ssh/id_rsa这样,还看不懂请参考上方例子。
拷贝完成后,把所有的id_rsa私钥文件添加到SSH-Agent,命令如下:
ssh-add id_rsa文件的路径
例如添加.ssh文件夹下的,Windows这样做:ssh-add ~/.ssh/id_rsa,如果你在.ssh文件夹下:ssh-add id_rsa即可。
最后,还剩下项目的用户和邮箱没有配置,和配个单个Git帐号的方式不同,这里我们需要为每个项目分别配置,所以要命令行进入仓库文件夹再设置。第一种情况是先从Git上pull仓库下来,第二种情况是本地初始化Git仓库,总之进入改仓库文件夹后:
git config --local user.name "你的名字"git config --local user.email "你的邮箱"
不过麻烦的一点是如果是多个项目就需要挨个配置,不过我们一般是pull一个项目就配置一下,也仅仅需要配置一次即可。
注意配置单个Git帐号时,是不进入项目文件夹就可以,不过不是使用–local,而是使用–global就可以全局配置。
配置项目用户和邮箱完成后,我们可以进入项目文件夹下的.git文件夹查看config文件内容,大概内容如下:
...[user] name = YanZhenjie email = smallajax@foxmail.com
至此,所有的配置完成了。
- Git多账号配置及SSH-KEY管理
- git多账号ssh-key配置
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Windows下Git多账号配置,同一电脑多个ssh-key的管理
- Git多SSH账号管理
- Git使用手册:使用SSH Key及配置SSH key公钥
- git配置及多个ssh key的问题
- 配置Git及生成SSH Key
- git ssh key 生成及配置
- Git config 配置及SSH key生成
- 「Git」多账号多SSH-KEY使用教程
- GIT配置SSH key
- Git安装和多ssh key 管理
- Google WomenTechmakers(北京区)感悟
- 因果图与判定表法
- 九度OJ题目1001:A+B for Matrices
- spring @Scheduled cron表达式
- java创建txt文件并存入内容
- Git多账号配置及SSH-KEY管理
- Hystrix配置介绍
- adaboost训练——弱分类器训练的opencv源码详解 (1)
- Struts2-Action-5-系列问题(接受用户输入(3种方式))
- 伙伴关系
- 信息学竞赛刷题建议历程
- MAC OS X 下APACHE MYSQL PHP的环境搭建使用
- Bootstrap 移动端屏幕大小
- IntelliJ Idea 常用快捷键列表