git配置多个SSH
- 内容介绍
- 文章标签
- 相关推荐
多个git的SSH映射
写的这个 SSH 配置,就是为了让:公司仓库、个人仓库、甲方仓库,在不同电脑上自动识别身份,不用手动切换、不会串号、不会权限报错。
真正解决的 4 个真实痛点:
- 公司 Gitee(企业加密仓库) 和 个人 Gitee 不能共存
- 提交代码不会串身份(公司 ↔ 个人 自动切换)
- 家里电脑 ↔ 上班电脑 同步 Git 地址完全不影响.并且我重装系统直接复制这个SSH文件就好了
- VS Code Git 差、不想用 SourceTree
或者也可以试用其他的git工具或者git功能强大的编辑器
基础文件结构(Windows环境)
放到C:\Users\用户.ssh\config(不需要后缀)
# gitee:zhang 配置
Host gitee-zhang
HostName gitee.com
User git
IdentityFile C:\Users\Z2864\.ssh\demo1 # 账号1的私钥路径
IdentitiesOnly yes # 强制使用指定私钥,解决多密钥冲突
PreferredAuthentications publickey # 优先公钥认证
StrictHostKeyChecking no # 可选:避免首次连接的主机验证提示
# GitHub:github-zhang 配置
Host github.com
HostName github.com
User git
IdentityFile C:\Users\Z2864\.ssh\demo2 # 账号2的私钥路径
IdentitiesOnly yes # 强制使用指定私钥,解决多密钥冲突
PreferredAuthentications publickey # 优先公钥认证
StrictHostKeyChecking no # 可选:避免首次连接的主机验证提示
步骤 1:检查关键文件是否存在(PowerShell 中执行)
# 1. 检查主SSH配置文件(通常是~/.ssh/config)
ls ~/.ssh/config
# 正常输出:能看到config文件(包含你贴的这些配置)
# 2. 检查被Include的配置文件(如果有)
ls C:\Users\Z2864\.ssh\config
# 如果这个文件不存在,可忽略(重点是~/.ssh/config里的配置)
# 3. 检查两个私钥文件是否存在(核心!)
ls C:\Users\Z2864\.ssh\demo1
ls C:\Users\Z2864\.ssh\demo2
# 正常输出:能看到这两个私钥文件,否则需要恢复备份的私钥
步骤 2:恢复私钥文件(如果缺失)
#Z2864 要修改成自己的 本来是写了一个自动获取的但是 不允许发
# F = 完全控制权限
# (OI)(CI) = 权限会继承到子文件夹和子文件
icacls C:\Users\Z2864\.ssh\demo1 /inheritance:r
icacls C:\Users\Z2864\.ssh\demo1 /grant:r Z2864:F // 修改Z2864
icacls C:\Users\Z2864\.ssh\demo2 /inheritance:r
icacls C:\Users\Z2864\.ssh\demo2 /grant:r Z2864:F // 修改Z2864
# 给.ssh目录设置权限(可选,但建议做)
icacls C:\Users\Z2864\.ssh /inheritance:r
icacls C:\Users\Z2864\.ssh /grant:r Z2864:(OI)(CI)F // 修改Z2864
步骤 3:启动 SSH 代理并加载私钥
# 1. 以管理员身份启动SSH代理服务(确保开机自启)
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
# 2. 加载两个私钥到SSH代理
ssh-add C:\Users\Z2864\.ssh\demo1
ssh-add C:\Users\Z2864\.ssh\demo2
# 3. 验证密钥是否加载成功(能看到两个密钥的指纹)
ssh-add -l
步骤 4:测试两个 Gitee 账号的 SSH 连接
# 测试账号1:gitee-demo1(对应demo1密钥)
ssh -T gitee-demo1
# 测试账号2:gitee-demo2(对应demo2密钥)
ssh -T gitee-demo2
✅ 成功输出(每个账号测试都会返回对应 Gitee 用户名):
Hi 你的Gitee用户名! You've successfully authenticated, but GITEE.COM does not provide shell access.
大致是这个思路这个是我去年整理的 等我下次再重装系统如果哪里不对我再补充
(电脑必须干净 如果C盘太多或者有很多我不认识的会让我没有安全感 我就会重装系统 之前有过一个月重装两次的)
网友解答:--【壹】--:
我把ssh私匙直接放到keepass里,在哪里都可以用,什么环境都行。
--【贰】--:
确实 这个方案给出了挺多的解决方案 确实方案好一些 我再重装电脑 我配置尝试下
--【叁】--:
git其实适合用 https://www.cnblogs.com/librarookie/p/15697181.html 这个额方式,例如同时有多个gitee 或者 多个github账号这样的
仅供参考
多个git的SSH映射
写的这个 SSH 配置,就是为了让:公司仓库、个人仓库、甲方仓库,在不同电脑上自动识别身份,不用手动切换、不会串号、不会权限报错。
真正解决的 4 个真实痛点:
- 公司 Gitee(企业加密仓库) 和 个人 Gitee 不能共存
- 提交代码不会串身份(公司 ↔ 个人 自动切换)
- 家里电脑 ↔ 上班电脑 同步 Git 地址完全不影响.并且我重装系统直接复制这个SSH文件就好了
- VS Code Git 差、不想用 SourceTree
或者也可以试用其他的git工具或者git功能强大的编辑器
基础文件结构(Windows环境)
放到C:\Users\用户.ssh\config(不需要后缀)
# gitee:zhang 配置
Host gitee-zhang
HostName gitee.com
User git
IdentityFile C:\Users\Z2864\.ssh\demo1 # 账号1的私钥路径
IdentitiesOnly yes # 强制使用指定私钥,解决多密钥冲突
PreferredAuthentications publickey # 优先公钥认证
StrictHostKeyChecking no # 可选:避免首次连接的主机验证提示
# GitHub:github-zhang 配置
Host github.com
HostName github.com
User git
IdentityFile C:\Users\Z2864\.ssh\demo2 # 账号2的私钥路径
IdentitiesOnly yes # 强制使用指定私钥,解决多密钥冲突
PreferredAuthentications publickey # 优先公钥认证
StrictHostKeyChecking no # 可选:避免首次连接的主机验证提示
步骤 1:检查关键文件是否存在(PowerShell 中执行)
# 1. 检查主SSH配置文件(通常是~/.ssh/config)
ls ~/.ssh/config
# 正常输出:能看到config文件(包含你贴的这些配置)
# 2. 检查被Include的配置文件(如果有)
ls C:\Users\Z2864\.ssh\config
# 如果这个文件不存在,可忽略(重点是~/.ssh/config里的配置)
# 3. 检查两个私钥文件是否存在(核心!)
ls C:\Users\Z2864\.ssh\demo1
ls C:\Users\Z2864\.ssh\demo2
# 正常输出:能看到这两个私钥文件,否则需要恢复备份的私钥
步骤 2:恢复私钥文件(如果缺失)
#Z2864 要修改成自己的 本来是写了一个自动获取的但是 不允许发
# F = 完全控制权限
# (OI)(CI) = 权限会继承到子文件夹和子文件
icacls C:\Users\Z2864\.ssh\demo1 /inheritance:r
icacls C:\Users\Z2864\.ssh\demo1 /grant:r Z2864:F // 修改Z2864
icacls C:\Users\Z2864\.ssh\demo2 /inheritance:r
icacls C:\Users\Z2864\.ssh\demo2 /grant:r Z2864:F // 修改Z2864
# 给.ssh目录设置权限(可选,但建议做)
icacls C:\Users\Z2864\.ssh /inheritance:r
icacls C:\Users\Z2864\.ssh /grant:r Z2864:(OI)(CI)F // 修改Z2864
步骤 3:启动 SSH 代理并加载私钥
# 1. 以管理员身份启动SSH代理服务(确保开机自启)
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
# 2. 加载两个私钥到SSH代理
ssh-add C:\Users\Z2864\.ssh\demo1
ssh-add C:\Users\Z2864\.ssh\demo2
# 3. 验证密钥是否加载成功(能看到两个密钥的指纹)
ssh-add -l
步骤 4:测试两个 Gitee 账号的 SSH 连接
# 测试账号1:gitee-demo1(对应demo1密钥)
ssh -T gitee-demo1
# 测试账号2:gitee-demo2(对应demo2密钥)
ssh -T gitee-demo2
✅ 成功输出(每个账号测试都会返回对应 Gitee 用户名):
Hi 你的Gitee用户名! You've successfully authenticated, but GITEE.COM does not provide shell access.
大致是这个思路这个是我去年整理的 等我下次再重装系统如果哪里不对我再补充
(电脑必须干净 如果C盘太多或者有很多我不认识的会让我没有安全感 我就会重装系统 之前有过一个月重装两次的)
网友解答:--【壹】--:
我把ssh私匙直接放到keepass里,在哪里都可以用,什么环境都行。
--【贰】--:
确实 这个方案给出了挺多的解决方案 确实方案好一些 我再重装电脑 我配置尝试下
--【叁】--:
git其实适合用 https://www.cnblogs.com/librarookie/p/15697181.html 这个额方式,例如同时有多个gitee 或者 多个github账号这样的
仅供参考

