同一台电脑使用多个账号对仓库进行Git提交

在.ssh文件夹中批量生成三个密钥

要在Windows下批量生成多个Git密钥,分别命名为codeup_1, codeup_2, codeup_3,并假设这些密钥将存储在用户的.ssh目录下,你可以使用以下批处理脚本来实现这一过程:

bash 复制代码
@echo off
setlocal enabledelayedexpansion

set "ssh_folder=%USERPROFILE%\.ssh"
if not exist "%ssh_folder%" mkdir "%ssh_folder%"

for /L %%i in (1,1,3) do (
    set "folder=codeup_%%i"
    echo Generating SSH keys for !folder!
    ssh-keygen -t rsa -f "%ssh_folder%\!folder!"
    echo Public key saved as %ssh_folder%\!folder!.pub
)

echo All SSH keys have been generated.
endlocal

Git配置与切换不同ssh密钥

场景:当需要用多个账号进行Git提交时候需要用到,如这段时间所有仓库要用a账号提交,过段时间要切换成b账号提交,这时候就需要在一台电脑上配置多个SSH密钥。

步骤

  • 参考: 如何在同一台电脑上配置多个SSH Key?

  • 1.生成 给每个账号生成不同的key,如 ** 在.ssh文件夹中批量生成三个密钥 ** 中生成的:codeup_1, codeup_2, codeup_3,这三个就可以对应三个账号了。

  • 然后将这三个密钥分别给三个帐号配置到阿里云效后台的SSH公钥中。

  • 配置.ssh/config文件,没有这个文件则新建一个,注意这个文件没有后缀名

    bash 复制代码
    Host codeup.aliyun.com
    HostName codeup.aliyun.com
    IdentityAgent none
    IdentitiesOnly yes
    IdentityFile ~/.ssh/codeup_1 
    PreferredAuthentications publickey

    codeup.aliyun.com的仓库都使用codeup5194这个key

切换不同账号

  • 写一个bat脚本,用于切换config文件中IdentityFile后面的内容

    bash 复制代码
    @echo off
    
    rem 设置新的 IdentityFile 内容
    set "new_identity=~/.ssh/需要替换的key文件名"
    
    rem 设置 SSH 配置文件路径
    set "ssh_config=%USERPROFILE%\.ssh\config"
    
    rem 检查 SSH 配置文件是否存在
    if not exist "%ssh_config%" (
        echo SSH 配置文件不存在:%ssh_config%
        exit /b
    )
    
    rem 使用 "type" 命令读取文件内容并替换
    type "%ssh_config%" | findstr /v /i /c:"IdentityFile" | findstr /v /i /c:"PreferredAuthentications" > "%ssh_config%.tmp"
    
    rem 将新的 IdentityFile 添加到临时文件末尾
    echo IdentityFile %new_identity% >> "%ssh_config%.tmp"
    echo PreferredAuthentications publickey >> "%ssh_config%.tmp"
    
    rem 替换原始 SSH 配置文件
    move /y "%ssh_config%.tmp" "%ssh_config%" > nul
    
    echo IdentityFile 已更新:%new_identity%
    
    rem 切换git提交账号
    git config --global user.name "自己的提交作者名"
    git config --global user.email "提交作者邮箱"

    多个账号可以创建多个bat脚本,每个脚本修改对应"需要替换的key文件名""自己的提交作者名""提交作者邮箱"即可

  • 运行脚本切换到对应账号绑定的密钥

  • Git Base命令行中输入ssh -t codeup.aliyun.com即可查看当前账号,或新建一个bat

    less 复制代码
    @echo off
    REM 查看当前用户名
    ssh -T git@codeup.aliyun.com
    pause
相关推荐
花间相见13 分钟前
【终端效率工具01】—— Yazi:Rust 编写的现代化终端文件管理器,告别繁琐操作
前端·ide·git·rust·极限编程
|晴 天|23 分钟前
我如何用Vue 3打造一个现代化个人博客系统(性能提升52%)
前端·javascript·vue.js
风止何安啊31 分钟前
网页都知道要双向握手才加载!从 URL 到页面渲染,单向喜欢连 DNS 都解析不通
前端·javascript·面试
太极OS37 分钟前
给 AI Skill 做 CI/CD:GitHub + ClawHub + Xiaping 同步发布实战
前端
你_好37 分钟前
Chrome 内置了 AI 工具协议?WebMCP 抢先体验 + 开源 DevTools 全解析
前端·mcp
GISer_Jing37 分钟前
LangChain.js + LangGraph.js 前端AI开发实战指南
前端·javascript·langchain
正在发育ing__41 分钟前
从源码看vue的key和状态错乱的patch
前端
黄林晴1 小时前
第一次听到 Tauri 这个词,去学习一下
前端
可可爱爱的你吖1 小时前
蜂鸟云地图简单实现
前端
布局呆星1 小时前
Vue3 :生命周期、DOM 操作与自定义组合式函数
前端·javascript·vue.js