同一台电脑使用多个账号对仓库进行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
相关推荐
多多米100540 分钟前
初学Vue(2)
前端·javascript·vue.js
柏箱1 小时前
PHP基本语法总结
开发语言·前端·html·php
新缸中之脑1 小时前
Llama 3.2 安卓手机安装教程
前端·人工智能·算法
hmz8561 小时前
最新网课搜题答案查询小程序源码/题库多接口微信小程序源码+自带流量主
前端·微信小程序·小程序
看到请催我学习1 小时前
内存缓存和硬盘缓存
开发语言·前端·javascript·vue.js·缓存·ecmascript
blaizeer2 小时前
深入理解 CSS 浮动(Float):详尽指南
前端·css
编程老船长2 小时前
网页设计基础 第一讲:软件分类介绍、工具选择与课程概览
前端
编程老船长2 小时前
网页设计基础 第二讲:安装与配置 VSCode 开发工具,创建第一个 HTML 页面
前端
速盾cdn2 小时前
速盾:网页游戏部署高防服务器有什么优势?
服务器·前端·web安全
小白求学12 小时前
CSS浮动
前端·css·css3