最近有个小学妹刚入职新公司,公司用的是Git版本治理工具,然后她其实自己也经常玩Github,Git用起来基本操作问题也不大。可是现在她遇到一个小问题,相信这个问题许多法式员(媛)也经常遇到。什么问题呢?来跟大家唠一唠。大家都知道,在多人协作开发中,我们需要把代码提交到Git服务器的。
可是并不是所有人都可以往服务器上推送代码,只有有相应权限的人才气推送,所以就涉及到如何对服务器举行授权的问题。现在授权方式有两种,一种是HTTP/HTTPS协议,另外一种是SSH Key协议。HTTP/HTTPS协议利益是利便,不需要繁杂的设置,push的时候直接输入用户名和密码就行。可是有个欠好的是,每次举行PUSH操作,都需要举行授权,对于恒久需要在这个堆栈下事情来说,这显得就有点太贫苦了。
另有另外一种授权方式,就是SSH Key,SSH Key是先在当地生成一个公钥和秘钥,然后再把公钥设置到Git服务器上,以后每次提交接码,Git会自动和当地的秘钥举行匹配,如果匹配到了,就代表授权乐成,否则就是授权失败。SSH Key的方式利益是一次授权,次次可用。但第一次设置会稍微贫苦一点,不外对于恒久在某个Git服务器上事情来说,这样一次贫苦,还是很值得的。
再回到刚刚谁人小学妹的问题上,她是用SSH Key的方式在公司的Git服务器授权的,然后她的Github账号用的也是SSH Key方式授权,而同一个SSK Key是不能在两个平台上共用的(用户名和邮箱相同的除外),在明白为什么不能共用之前,先来看下如何生成SSH Key。一、生成一个SSH Key:打开git bash。
然后输入下令:ssh-keygen -t rsa -C "你的邮箱"。一顿下一步就可以了,密码都保留为空。
然后在当前登任命户的home目录下找到.ssh:C:Usershynev.ssh,打开id_rsa.pub。在github的设置中,点击SSH and GPG keys,在SSH Keys的地方,点击Add New,把id_ras.pub中的文本,复制到内里去。
注意到没有,你在生成SSK Key的时候,需要用到你的邮箱。一般我们在公司,都市有一个公司的内部邮箱,在Github上,我们用的都是自己私人的邮箱。
差别邮箱生成的SSH Key是差别的,因此两个差别的Git服务器是不能公用相同的SSH Key的。那这时候怎么办呢?我们可以生成多个SSH Key,针对每个Git服务器都生成一个对应的SSH Key不就可以了吗?是的,来干起来!二、生成多个SSH Key:多个SSH Key生成方式跟之前的有点纷歧样。这里我们以Github和Gitee两个服务器为例,做个详细先容。如果我在Github上的邮箱是github@qq.com,在Gitee上的邮箱是gitee@qq.com。
1.执行ssh-keygen -t rsa -C "github@qq.com"。然后回车。2.提示要输入SSH Key的路径和名称,我们填入id_rsa_github。
3.后面默认全部留空,按回车键一顿下一步就行了。这时候会在当地生成两个文件,划分是:id_rsa_github和id_rsa_github.pub。同样,gitee的建立方式也一样,只不外在输入秘钥名称的时候,把id_rsa_github改成id_rsa_gitee就行了。
此时在当地就有四个文件(两个公钥和两个秘钥)。我们把这四个文件拷贝到当前用户的home目录下的.ssh中(好比/home/ubuntu/.ssh或者C:Usershynev.ssh)。生成了多个SSH Key后,还需要写一个config设置文件用来映射差别的Git服务器与SSH Key文件。
继续来往下走。三、设置多个SSH Key文件:上一个步骤已经生成了多个SSH Key,而且已经拷贝到.ssh文件夹中了。
然后我们就可以开始设置了。步骤如下:1.在.ssh文件夹中建立config文件。这个文件没有任何后缀。
2.打开config文件,然后输入以下代码:这里对以上代码做个简朴先容。其中Host和HostName填git服务器的域名就可以。然后User划分填在这两个服务器上注册时候的邮箱。PreferredAuthentications publickey是牢固写法,IdentityFile则划分填对应的公钥文件名称。
3.以上设置好后,再把私钥文件添加到SSH-Agent中。执行下令如下:ssh-add id_rsa_github以及ssh-add id_rsa_gitee。
如果执行的时候泛起错误Could not open a connection to your authentication agent.,那么先执行eval $(ssh-agent),再执行ssh-add下令即可。4.以上操作都完成后,就可以举行测试,看能否授权乐成。好比测试github,那么下令为:ssh -T git@github.com。
如果提示Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.,则说明已经设置乐成了。以上便已经乐成设置了多个SSH Key,在clone、push代码的时候,他会自动凭据当前git堆栈设置的url来选择差别的秘钥,就似乎只有一个秘钥一样。在我还没跟小学妹讲设置多个SSH Key之前,她每次在公司都只能通过Http/Https协议来授权,事情效率低,经常加班。
自从我跟小学妹讲完如何设置多个SSH Key后,小学妹已经开始有时间陪我去用饭看影戏了,准备思量下恒久的生长。老铁们,我是不是靠实力用饭的?。
本文关键词:一台,电脑,如何,同时,玩转,GitHub,和,公司,Git,开云体育世界杯在哪买
本文来源:开云体育世界杯在哪买-www.luoqi168.com