作为新时代的开发者,大家一般会拥有自己的Github工程。同时公司又提供单独gitlab服务器,所以经常会遇到需要在同一设备下配置多个ssh key的情况,下述会阐述如何进行设置操作:
直接上手
第一步:生成指定名称的秘钥
$ ssh-keygen
首先 ssh-keygen
会确认密钥的存储位置(默认是 .ssh/id_rsa
),然后它会要求你输入两次密钥口令。如果你不想在使用密钥时输入口令,将其留空即可(直接回车)。
需要注意的是这里必须输入指定的名称,不能使用默认名称,否则会相互覆盖(这是配置多个key的重点),如:id_rsa_idss
第二步:配置config文件
找到key的生成地方,如我的是/Users/ligang/.ssh
,创建config文件(如果已存在,无需创建)。添加如下内容:
Host 192.168.0.45
IdentityFile ~/.ssh/id_rsa.idss
User ligang@xxx.com
字段 | 说明 |
---|---|
Host | 远程主机地址 |
IdentityFile | 私钥的文件路径及文件名称 |
User | 用户 |
Port | 远程主机上连接的端口号 |
HostName | 要登录的真实主机名。数字IP地址也是允许的 |
… | … |
需要注意的是,默认的id_rsa
并不需要配置!
第三步:复制新生成的公钥到服务器
登录github或相关gitlab,进入相关的ssh添加页面(如,github添加地址为SSH and GPG keys),追加上述信息。
第四步:修改相关用户配置
如果不对用户相关配置修改,会默认以 --global
配置的用户信息进行提交,所以需要进入指定文件夹,进行配置,覆盖全局的相关配置信息。
$ git config user.name "your name"
$ git config user.email "your email"
注意:不要加--global
,否则会覆盖默认配置。
至此,大功告成,在不同的工程下互相不再冲突,可以直接获取或提交代码!
相关说明
秘钥信息
Git 服务器都使用 SSH 公钥进行认证,为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh
目录下。
用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
上述就是在当前web工程中使用新的用户信息覆盖了全局配置的用户信息(重复的变量名,会使用后者)!
再次强调,如果使用了 --global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global
选项的命令来配置。
-
git config --list
:查看配置信息 -
git config <key>
:查看某一项的配置信息
参考地址:
- https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%88%9D%E6%AC%A1%E8%BF%90%E8%A1%8C-Git-%E5%89%8D%E7%9A%84%E9%85%8D%E7%BD%AE
- https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5
- https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/