- Published on
用ssh的方式来连接你的git
- Authors
- Name
- 林晓东
- @xiaodong5959
我们在使用git进行远程仓库操作的时候,如果使用https的方式的话,总是会在每次操作的时候都要求输入用户名密码,如果我们固定会在某台电脑上面使用的话,就可以选择用SSH的方式来避免每次输入用户名和密码。
SSH是一个身份认证系统,它是用来识别你的身份,而不是用来识别客户端的,
因此在电脑上面,我们要用我们自己的身份来生成一份公私的密钥对。
打开git bash,运行ssh-keygen -t rsa -C 'youremail@gmail.com'
,这里面的youremail@gmail.com
就是你自己的邮箱,如下图:
之后就会在我们的用户目录下面生成一个.ssh
的文件夹,里面会出现两个文件,id_rsa
和id_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操作权限。
一个公钥只能应用于一处,即要么是账户级,要么是项目级,项目级也只能应用于一个项目中,不能多个项目使用同个公钥。