10分钟教你本地配置多个git ssh连接的方法

 更新时间:2020年11月19日 10:11:19   作者:纳撸多  
这篇文章主要介绍了10分钟教你本地配置多个git ssh连接的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

你最近换电脑了吗?还记得如何在本地配置多个 git ssh 连接吗?一般公司用的是自己内网部署的 gitlab 服务器进行代码管理,开发者使用的是公司的用户名和公司的邮箱,而在个人的开源项目中,我们的代码托管于 github,这个时候就需要两个或多个以上的 SSH-Key 去进行登录,方便代码的拉取与推送。

文章大纲

  • 查看所有 ssh key
  • 分别配置 gitlab 内网 和 github 外网 ssh
  • 进行测试

第一步:查看所有 SSH-Key

打开 bash/zsh 终端:执行以下命令

$ cd ~/.ssh/
$ ls

输出如下:

KaydeMBP:~ kayliang$ cd ~/.ssh/
KaydeMBP:.ssh kayliang$ ls
config   github_id-rsa.pub gitlabnei_id-rsa.pub
github_id-rsa  gitlabnei_id-rsa known_hosts

第二步:生成一个 ssh-key,用于配置公司的 GitLab

在~/.ssh/目录会生成gitlab_id-rsa和gitlab_id-rsa.pub私钥和公钥。

$ ssh-keygen -t rsa -C "xxx@xxx.com" -f ~/.ssh/gitlabnei_id-rsa

查看你的 public key,我们将gitlabnei_id-rsa.pub中的内容粘帖到公司GitLab服务器的SSH-key的配置中。

# 把文件内容打印到命令行工具上,方便复制
cat ~/.ssh/gitlab_id-rsa.pub

格式如下所示,记得把整个文本包括 ssh-rsa 也复制到剪切板上。

ssh - rsa;

xxxxxxxxx;
xxxxx;

然后粘贴到网站的 ssh 配置中:

第三步:Github 生成一个 SSH-Key

在~/.ssh/目录会生成github_id-rsa和github_id-rsa.pub私钥和公钥。我们将github_id-rsa.pub中的内容粘帖到github服务器的SSH-key的配置中。

ssh-keygen -t rsa -C "xxxx@xxxx.com" -f ~/.ssh/github_id-rsa

第四步:在 ~/.ssh 目录下添加config配置文件用于区分多个 SSH-Key

1. 添加识别 SSH keys 新的私钥

默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中

# 查看已经添加的私钥
ssh-add -l

3072 SHA256:xxxxxxxxxx linjy@xxxx.com.cn (RSA)

$ ssh-agent bash
$ ssh-add ~/.ssh/github_id_rsa
$ ssh-add ~/.ssh/gitlabnei_id_rsa

这一步很重要,否则你在后面进行 git clone 拉取 ssh 地址的仓库会出现错误。

KaydeMBP:chengdu-project kayliang$ git clone ssh://git@xxxxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/chengdu-natural-resources-cli3.git
Cloning into 'chengdu-natural-resources-cli3'...
no such identity: gitlabnei_id-rsa: No such file or directory
git@xxxxxxx.amazonaws.com.cn: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

2. 添加 config 配置文件

vi ~/.ssh/config

设置文件内容如下,这里要注意的是:配置的信息必须跟你在仓库界面的 ssh 的地址一致,因为有时候 http 地址跟 ssh 地址的端口是不一样的。

地址:ssh://git@xxxxx.amazonaws.com.cn:5337/xdata/SH2019GH109/xxxxx.git

 根据上面的地址可以进行配置如下:

# gitlab
 Host xxxxx.amazonaws.com.cn # 这里是 ssh 地址的 ip
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/gitlabnei_id-rsa
 Port 5337 # 这里是 ssh 地址的端口

# github
Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/github_id-rsa
 
# 更多配置 ...

配置文件参数:

  • Host:可以看作是一个你要识别的模式,对识别的模式,进行配置对应的主机名和 ssh 文件。
  • HostName: 要登录主机的主机名。
  • User: 登录名。
  • IdentityFile: 指明上面 User 对应的 identityFile 路径。
  • Port: ssh 端口

第五步:测试

测试 github 外网 ssh 地址

ssh -T git@github.com

输出:

Hi Jecyu! You've successfully authenticated, but GitHub does not provide shell access.

测试公司内网 ssh 地址

ssh -T git@xxxx.amazonaws.com.cn
Welcome to GitLab, @linjy!

就表示成功的连接公司的 gitlab。

最后

使用 git clone 分别获取你的 github 个人项目,以及获取 gitlab 的公司内网项目:

git clone ssh://xxxx.amazonaws.com.cn:5337/xdata/SH2020GH036/xxxx.git
cd my-project
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

因为个人项目和公司项目的账户和邮箱都不一样,记得在各自的仓库下进行配置,这样提交时的 commit 记录的用户和邮箱都是正确的,当然这一步对你是否能用 ssh 提交和获取不影响的,只是为了看 commit 记录的时候更清晰。

 git config user.name xxxx
 git config user.email xxxx@xxx.com

小结

本文是笔者在实践中的记录,也参考了一些网上优秀的作者经验,如有错误请指出。
参考资料

更进一步阅读,了解 SSH 知识:https://segmentfault.com/q/1010000000835302 和 《SSH,The Secure Shell》 书本。

git 手册

到此这篇关于10分钟教你本地配置多个git ssh连接的方法的文章就介绍到这了,更多相关git ssh连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用.gitignore文件简化Git仓库管理

    使用.gitignore文件简化Git仓库管理

    .gitignore文件用于指定在git中应该被忽略的文件或目录,前端的node_modules目录包含大量文件,如果将其添加到版本管理系统中,会使仓库变得庞大,不利于仓库的管理,本文介绍了使用.gitignore文件来简化你的Git仓库管理
    2023-10-10
  • s49 磁盘存储文件系统管理详解

    s49 磁盘存储文件系统管理详解

    这篇文章主要为大家介绍了s49 磁盘存储文件系统管理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • ImageMagick免费开源图片批处理利器使用详解

    ImageMagick免费开源图片批处理利器使用详解

    这篇文章主要为大家介绍了ImageMagick免费开源图片批处理利器使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • alt键 chr码值对应列表查看方法

    alt键 chr码值对应列表查看方法

    有时候在开发过程中,需要知道chr的码值,有时候有些东西记不住就可以用下面的方法。
    2009-09-09
  • Vscode一些常用操作图文教程

    Vscode一些常用操作图文教程

    这篇文章主要给大家介绍了关于Vscode的一些常用操作的相关资料,VSCode是一款非常流行的代码编辑器,广泛应用于前端开发,文中给出了详细图文教程,需要的朋友可以参考下
    2023-08-08
  • 12个Visual Studio调试效率技巧(小结)

    12个Visual Studio调试效率技巧(小结)

    这篇文章主要介绍了12个Visual Studio调试效率技巧,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-07-07
  • 网站程序员如何应对web标准

    网站程序员如何应对web标准

    网站程序员如何应对web标准...
    2007-04-04
  • vscode使用restClient实现各种http请求的操作方法

    vscode使用restClient实现各种http请求的操作方法

    这篇文章主要介绍了vscode使用restClient实现各种http请求的操作方法,定义变量以及使用环境变量和返回数据作为变量的操作代码,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • git工具常用命令及ssh操作方法

    git工具常用命令及ssh操作方法

    这篇文章主要介绍了git工具常用到的命令以及非常详细的ssh操作方法,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家能够多多进步,早日升职加薪
    2021-09-09
  • minio对象存储四台服务器部署4个节点集群的实现方式

    minio对象存储四台服务器部署4个节点集群的实现方式

    这篇文章主要介绍了minio对象存储四台服务器部署4个节点集群,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论