win7下实现gitlab和github ssh共存

来源:互联网 发布:linux socket bind 编辑:程序博客网 时间:2024/05/22 17:31

本地项目开发使用的是gitlab,但是有时候会使用github存储自己写的小demo。之前使用的时候发现,只能使用其中一个,而不能在系统中同时存在两个的ssh,经过网上查询资料,自己从坑中慢慢爬了出来。。。


目录

      • 生成gitlab ssh key
      • 生成github ssh key
      • 配置文件
      • 配置用户名和邮箱
      • 注意事项
      • 测试


生成gitlab ssh key

  1. 找到/c/Users/you(系统名称)/.ssh文件夹。
  2. 在本文件夹【右键】点击【Git Bash Here】。
  3. 在命令行输入:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"。其中your_email@example.com是你注册gitlab的邮箱地址。回车
  4. 当看到Enter a file in which to save the key (/c/Users/you/.ssh/id_rsa):时,括号里提示的是生成ssh的默认文件名id_rsa,在这里gitlab就可以使用默认的文件名(我自己由于原来就有了gitlab的ssh,所以我使用了默认名)。回车
  5. 后面步骤就是设置密码了,连续回车即可。
  6. 完成后就在本文件夹里看到id_rsa和id_rsa.pub两个文件,其中,id_rsa是私钥文件,id_rsa.pub是公钥文件。
  7. 将id_rsa.pub中的内容复制出来,并添加到gitlab 【settings】中的【SSH keys】中。

生成github ssh key

生成github ssh文件时,与生成gitlab的步骤是一样的,不同的是在:

  • 第3步的邮箱更改为注册github的邮箱
  • 第4步生成的文件名要与生成gitlab的文件名有所区分,我这里为id_rsa_github

其他步骤一路回车即可。然后将id_rsa_github.pub中的内容复制出来添加到github 【settings】->【SSH Keys】中。
这两部完成之后还有重要的一步,将生成的SSH配置到ssh-agent中。

配置文件

在bash中创建config文件vi config并添加一下内容:

#gitlabHost gitlab        HostName 192.*.*.*(更改为本地gitlab的ip地址)        IdentityFile ~/.ssh/id_rsa#githubHost github        HostName github.com        IdentityFile ~/.ssh/id_rsa_github

在bash中运行

ssh-agent.exe bash

获得权限,然后依次在命令行输入(添加私钥)

 ssh-add id_rsa #添加gitlab私钥 ssh-add id_rsa_github #添加github私钥

然后就可以使用命令

ssh-add -L #查看公钥ssh-add -l #查看私钥

配置用户名和邮箱

gitlab由于是经常使用的,所以用户名和邮箱配置为全局的

cd **/gitlab #存放gitlab代码的路径git initgit config --global user.name 'gitlab注册用户名'git config --global user.email 'gitlab注册邮箱'

而github使用较少,所以用户名和邮箱配置为局部的

cd **/github #存放github代码的路径git initgit config --local user.name 'github注册用户名'git config --local user.email 'github注册邮箱'

注意事项

这里需要特别说明的是,全局用户名和邮箱配置一次就可以了,例如:

cd **/gitlab2   #更改了gitlab代码存放路径git init        #这一步可以省略,可以直接克隆代码git clone ***   #这里直接克隆相关代码即可,不需要再次配置全局用户名和邮箱

但是,对于github,每次更换存放路径都要重新配置局部的用户名和邮箱,例如:

cd **/github2 #存放github代码的路径git init      #不可省略git config --local user.name 'github注册用户名' #每次更改路径都要重新配置用户名git config --local user.email 'github注册邮箱'  #每次更改路径都要重新配置邮箱

测试

对于gitlab

ssh -T git@192.*.*.*    #gitlab的地址

出现

Welcome to GitLab, ***! #“***”表示你注册的用户名

说明配置成功。
对于github

ssh -T git@github.com

出现

Hi ***! You've successfully authenticated, but GitHub does not provide shell access. #“***”表示注册的用户名

说明配置成功。


至此,整个配置过程已经完成,如有不对的地方,欢迎留言批评指正。

原创粉丝点击