Published on

用ssh的方式来连接你的git

Authors

我们在使用git进行远程仓库操作的时候,如果使用https的方式的话,总是会在每次操作的时候都要求输入用户名密码,如果我们固定会在某台电脑上面使用的话,就可以选择用SSH的方式来避免每次输入用户名和密码。

SSH是一个身份认证系统,它是用来识别你的身份,而不是用来识别客户端的,

因此在电脑上面,我们要用我们自己的身份来生成一份公私的密钥对。

打开git bash,运行ssh-keygen -t rsa -C 'youremail@gmail.com',这里面的youremail@gmail.com就是你自己的邮箱,如下图:

之后就会在我们的用户目录下面生成一个.ssh的文件夹,里面会出现两个文件,id_rsaid_rsa.pub,后面这个就是我们的公钥文件,我们需要把这个公钥文件设置到github上面。

github上面有两个设置的地方,一个是账户设置里面里面的SSH Keys,这里面添加话,则可以通过私钥来控制整个账户下面的项目。

另一个就是具体项目设置里面的Deploy keys,在这里面添加key则只能控制这一个项目,如果勾选里面的Allow write access则可以对项目进行PUSH操作。

设置了key之后,我们打开本地项目中的.git文件夹,修改里面的config文件,把[remote "origin"]里面的url修改成我们项目的SSH地址就可以了。接下来我们就可以轻松地使用SSH进行操作了。

需要注意的是,假如账户A@gmail.com在github上面注册了,并创建了仓库,我们在本地为账户B@gmail.com创建了SSH,而账户B是没有注册github的,我们把B的公钥添加到账户A的账户级的SSH Keys中,那么账户B同样能够对A的所有仓库进行PUSH的操作的。而项目级的Deploy key中,则同样对该项目具有PUSH操作权限。

一个公钥只能应用于一处,即要么是账户级,要么是项目级,项目级也只能应用于一个项目中,不能多个项目使用同个公钥。