Skip to content

GitHub 多账号 SSH 配置

字数: 0 字 时长: 0 分钟

生成多个 SSH 密钥

为每个 GitHub 账号生成独立的 SSH 密钥:

sh
# 个人账号密钥

ssh-keygen -t rsa -b 4096 -C "personal@example.com" -f ~/.ssh/id_rsa_personal


# 工作账号密钥

ssh-keygen -t rsa -b 4096 -C "work@company.com" -f ~/.ssh/id_rsa_work


# 组织账号密钥

ssh-keygen -t rsa -b 4096 -C "org@organization.com" -f ~/.ssh/id_rsa_org

配置 SSH 配置文件

编辑 ~/.ssh/config 文件,为每个账号创建独立的配置:

sh

# 个人账号配置

Host personal.github.com

    HostName ssh.github.com

    Port 443

    User git

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/id_rsa_personal

  


# 工作账号配置

Host work.github.com

    HostName ssh.github.com

    Port 443

    User git

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/id_rsa_work

  


# 组织账号配置

Host org.github.com

    HostName ssh.github.com

    Port 443

    User git

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/id_rsa_org

  


# 默认配置(可选)

Host github.com

    HostName ssh.github.com

    Port 443

    User git

配置公钥到对应账号

sh
# 查看公钥内容

cat ~/.ssh/id_rsa_personal.pub

cat ~/.ssh/id_rsa_work.pub

cat ~/.ssh/id_rsa_org.pub

分别复制到对应的 GitHub 账号的 SSH Keys 设置中。

使用方法

根据账号使用对应的别名:

sh

# 个人账号仓库

git clone git@personal.github.com:username/personal-repo.git

# 工作账号仓库

git clone git@work.github.com:company/work-repo.git

# 组织账号仓库

git clone git@org.github.com:organization/org-repo.git

验证配置

测试各个账号的 SSH 连接

sh

# 测试个人账号

ssh -T git@personal.github.com

# 测试工作账号

ssh -T git@work.github.com

# 测试组织账号

ssh -T git@org.github.com

成功的话会看到:Hi username! You've successfully authenticated, but GitHub does not provide shell access.

常见问题及解决方案

Q1: 为什么使用 443 端口?

A: 某些网络环境限制 22 端口的访问,GitHub 提供了 443 端口的 SSH 服务作为替代方案。

自动化脚本

创建便捷的克隆脚本:

ssh_pindemo.sh

bash

#!/bin/bash

git clone git@pindemo.github.com:pindemo/$1.git

cd $(basename $1)

git config user.name "pindemo"

git config user.email "pindemo@example.com"

运行

sh
bash ssh_pindemo.sh XXXX