notes 笔记notes 笔记
Home
Article
Category
Tag
Timeline
Home
Article
Category
Tag
Timeline
  • build

    • 环境变量
  • browse

    • 2fa
    • sse
    • token
  • database

    • mongodb

      • start
    • mysql

      • curd
      • 安装
      • join
      • 多对多
      • 性能优化
      • 表设计
      • 常见问题
  • docker

    • github-actions

      • local
      • prod
    • docker-compose
    • index
    • podman
  • file

    • 文件下载
    • 原生 node.js下载文件
  • git

    • index
    • multiple-github-accounts
    • auto-commit
    • pat
    • rebase
  • linux

    • grep
    • index
    • ssh
    • vim
    • windows
  • network

    • best-proxy-way
    • git-via-https
    • github-push-fail
  • nginx

    • acme.sh
    • cache
    • https
    • index
    • safe
  • node

    • fnm
    • tool
  • obsidian

    • ish
    • start
  • react

    • index
    • set-state
  • summary

    • index
  • vue

    • index
    • typescript
  • libs
  • open-source
  • 步骤一 :使用cd ~/.ssh切换工作目录,然后使用如下命令生成两个钥匙,中间一路回车。
  • 步骤二:创建配置文件 config
  • 步骤三:添加秘钥到ssh识别列表
  • 步骤四:添加 SSH key 及 测试
  • 步骤五:为了确认我们可以通过 SSH 连接 github,可通过输入下面命令来验证
  • 步骤六:用户名和邮箱配置
  • 步骤七:使用 git克隆仓库
  • 步骤八:远程地址添加或者修改
  • 相关文章

如果一台电脑只有一个 github 账号,那么进行默认的 ssh 配置,通过 git 拉取和提交代码即可,但在实际的工作中,有时候需要在一台电脑登录多个 github 账号,将不同的项目代码提交到不同的 github 账号,这个时候如果仅仅只是使用 ssh 默认配置,私钥和公钥将无法完成一对一配对,为此我们需要进行 ssh 的多对多配置。

为了举例方便,这里使用 foo 和 bar 两个账户。

步骤一 :使用cd ~/.ssh切换工作目录,然后使用如下命令生成两个钥匙,中间一路回车。

# -C 参数是注释,随便填
ssh-keygen -t rsa -f ~/.ssh/id_rsa_foo -C "foo@qq.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_bar -C "bar@qq.com"

这样会在 ~/.ssh 目录下生成四个文件:

id_rsa.foo
id_rsa.foo.pub
id_rsa.bar
id_rsa.bar.pub

步骤二:创建配置文件 config

在 ~/.ssh目录下新建 config 文件,令不同 Host 实际映射到同一 HostName,但密钥文件不同。

touch config
vim config

写入以下内容

Host foo.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_foo

Host bar.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_bar

步骤三:添加秘钥到ssh识别列表

ssh-add ~/.ssh/id_rsa_foo
ssh-add ~/.ssh/id_rsa_bar

步骤四:添加 SSH key 及 测试

分别登录两个 github 账号,在 Settings —> SSH and GPG keys 中,点击 new SSH key,把 id_rsa.foo.pub 和 id_rsa.bar.pub 这两个公钥的内容分别添加到相应的账号中。

步骤五:为了确认我们可以通过 SSH 连接 github,可通过输入下面命令来验证

ssh -T git@foo.github.com
ssh -T git@bar.github.com

如果看到下面信息,就说明连接正常。

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

步骤六:用户名和邮箱配置

注意:因为一台电脑上配置了多个 github 账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的 git 账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置。

取消全局 用户名/邮箱 配置

git config --global --unset user.name
git config --global --unset user.email

设置局部 用户名/邮箱 配置

git config user.name "xxx"
git config user.email "xxx@xx.com"

步骤七:使用 git克隆仓库

原来写法

git clone git@github.com:用户名/仓库名.git

现在写法(将github.com 替换为之前设置的别名,这里替换为foo.github.com)

git clone git@foo.github.com:用户名/仓库名.git

步骤八:远程地址添加或者修改

添加

git remote add origin git@foo.github.com:用户名/仓库名.git

修改

git remote set-url origin git@foo.github.com:用户名/仓库名.git

相关文章

  • 1
  • 2
最近更新:: 2025/12/30 00:02
Contributors: qyhever
Prev
index
Next
auto-commit