SSH配置:如何在一台机器上配置多个Git账号

前言:

很多时候,我们一台机器上要使用多个Git库,比如 GitHub、GitLab、OSChina、CSDN、以及 自己公司的。那么 rsa就要有多份。那么该如何让这些共同存在呢?
原理就是:建立多个不同的rsa 然后 在ssh config中分别不同的配置。

操作步骤:

一、生成公钥和私钥(SSH Keys)

说明:SSH key 可以让你的电脑和 远程仓库 之间建立安全的加密连接,从而实现免密登录,能够在不输入Git密码的情况下,进行版本控制。

  1. 终端输入如下命令:
// 使用如下命令来生成 SSH Keys
ssh-keygen -t rsa -C "你的Git账号邮箱地址"
  1. 执行完这条命令之后, 会弹出如下提示:
    Enter file in which to save the key (/Users/renbo/.ssh/id_rsa):文件名
    在这句话后面可以自定义要生成的文件名(如:github_rsa、oschina_rsa、csdn_rsa等);如果不输入文件名,默认会生成 id_rsa.pub(公钥)、id_rsa(私钥)
    下一步... 不输入密码直接回车。

二、将公钥添加到网站

// 打开公钥文件,将公钥(`id_rsa.pub` 文件内容)添加到对应网站(如:GitHub / GitLab / OSChina / 自己公司的)上的SSH keys中。
open ~/.ssh/id_rsa.pub

四、修改 ssh config 配置文件

1.打开config文件

// 编辑config文件
vi ~/.ssh/config

2.添加如下内容

# 编写配置文件,支持多个账号自动登录

# 配置GitLab,公司账号1:
Host git-server
        HostName 192.168.68.85
        Port 22
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/work1_rsa

# 配置GitLab,公司账号2:
Host git-server
        HostName 192.168.75.30
        Port 22
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/work2_rsa

# 配置github
Host github.com
        HostName ssh.github.com # 以前使用 github.com,现在会连接超时。ssh: connect to host github.com port 22: Operation timed out
        User irenb@qq.com
        IdentityFile ~/.ssh/github_rsa

# 配置码云
Host gitee.com
        HostName gitee.com
        User irenb@qq.com
        IdentityFile ~/.ssh/oschina_rsa

# 配置coding
Host coding.net
        HostName coding.net
        User developer@irenb.com
        IdentityFile ~/.ssh/coding_rsa

五、测试SSH连接

  • 终端输入如下命令:
ssh -T git@github.com
  • 输入yes回车,如果有警告,根据提示进行操作。
    如:下面需要添加GitHub的Host地址 13.229.188.59 github.com
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxWGl7E1IGOCspRomTxxxxxxxxxx8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
Hi 91renb! You've successfully authenticated, but GitHub does not provide shell access.

六、删除本地全局设置

如果之前使用过程中使用过git config --global user.name "" 或者 git config --global user.email 命令,git会在本地产生一个.gitconfig文件,这个文件中保存了全局的git帐号信息,应该删除掉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,997评论 19 139
  • 简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快、最简...
    JonesCxy阅读 1,076评论 0 3
  • 安得万里风,飘飖吹我裳。唐 杜甫 《夏夜叹》 摘要 目前使用 git 作为文件版本控制工具的开发者越来越多,同时一...
    FosterDylan阅读 4,056评论 1 4
  • 一个朋友说,对北京的印象特别不好。我说北京有它的可取之处。朋友追问,有哪些? 胡说了一通有历史啊有文化积淀啊,我知...
    信步云深处阅读 166评论 0 0
  • 李白弓着腰,从最底下的抽屉里找到一个红色的礼盒,盒子表面蒙着淡淡的灰尘。 李白的心一紧。 他打开礼盒,从海绵块的凹...
    李旭洋阅读 424评论 0 2