news 2026/10/13 14:08:00

Windows系统永久配置Git使用SSH连接GitHub完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows系统永久配置Git使用SSH连接GitHub完整教程

方案一:修改Git全局配置(最简单)

cmd

# 1. 设置Git全局使用SSH代替HTTPS git config --global url."git@github.com:".insteadOf "https://github.com/" # 2. 设置SSH命令使用您的密钥 git config --global core.sshCommand "ssh -i %USERPROFILE%\.ssh\id_ed25519" # 3. 验证配置 git config --global --list | findstr "insteadof\|sshCommand"

优点:配置简单,一键完成
缺点:所有仓库使用同一密钥

方案二:创建SSH配置文件(最推荐)

  1. 创建或编辑SSH配置文件:

    text

    文件位置:C:\Users\你的用户名\.ssh\config
  2. 添加以下内容:

    config

    # GitHub Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes PreferredAuthentications publickey # 可选:为不同GitHub账户配置不同密钥 Host github-work HostName github.com User git IdentityFile ~/.ssh/work_key
  3. 设置文件权限(在Git Bash中):

    bash

    chmod 600 ~/.ssh/config

优点:灵活,支持多账户,符合SSH标准

方案三:Windows OpenSSH服务(最稳定)win+x

powershell

# 以管理员身份运行PowerShell # 1. 启用SSH-Agent服务 Set-Service ssh-agent -StartupType Automatic # 2. 启动服务 Start-Service ssh-agent # 3. 添加密钥到代理 ssh-add $HOME\.ssh\id_ed25519 # 4. 检查已加载的密钥 ssh-add -l

优点:系统级服务,重启后自动加载密钥


🔍 第四部分:验证配置是否成功

4.1 基础测试

cmd

# 测试SSH连接 ssh -T git@github.com

预期输出:

text

Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.

4.2 详细诊断

创建诊断脚本check_ssh.bat:

batch

@echo off echo ===== SSH配置诊断工具 ===== echo. echo [1] 检查密钥文件... if exist "%USERPROFILE%\.ssh\id_ed25519" ( echo ✓ 找到私钥文件 ) else ( echo ✗ 未找到私钥文件,请先生成SSH密钥 ) echo. echo [2] 检查SSH配置文件... if exist "%USERPROFILE%\.ssh\config" ( type "%USERPROFILE%\.ssh\config" echo. ) else ( echo ℹ 未找到config文件,将使用默认配置 ) echo [3] 测试GitHub连接... ssh -T git@github.com 2>&1 | findstr "successfully" >nul if %errorlevel%==0 ( echo ✓ SSH连接测试成功 ) else ( echo ✗ SSH连接测试失败 echo 请检查:1.公钥是否添加到GitHub 2.网络连接 ) echo. echo [4] 测试Git操作... echo 正在克隆测试仓库... git clone git@github.com:github/gitignore.git ssh-test-temp --depth=1 2>nul if exist "ssh-test-temp" ( echo ✓ Git克隆测试成功 rmdir /s /q ssh-test-temp 2>nul ) else ( echo ✗ Git克隆测试失败 ) echo. echo ===== 诊断完成 ===== pause

🚀 第五部分:日常使用命令

5.1 基本克隆命令

cmd

# 基本格式 git clone git@github.com:用户名/仓库名.git # 带分支和重命名 git clone -b 分支名 git@github.com:用户名/仓库名.git 自定义目录名 # 示例 git clone git@github.com:microsoft/vscode.git git clone -b main git@github.com:facebook/react.git react-project

5.2 特殊场景操作

cmd

# 1. 克隆包含子模块的仓库 git clone --recursive git@github.com:用户名/仓库名.git # 2. 浅克隆(只获取最新提交,加快速度) git clone --depth=1 git@github.com:用户名/仓库名.git # 3. 克隆特定标签版本 git clone -b v1.0.0 git@github.com:用户名/仓库名.git # 4. 限制克隆深度和过滤文件 git clone --filter=blob:none git@github.com:用户名/大仓库名.git

5.3 切换已有仓库为SSH

cmd

# 进入仓库目录 cd 仓库目录 # 查看当前远程地址 git remote -v # 修改为SSH地址(假设原地址是HTTPS) git remote set-url origin git@github.com:用户名/仓库名.git # 验证修改 git remote -v

📁 第六部分:实用脚本工具

6.1 通用克隆脚本gclone.bat

batch

@echo off echo GitHub SSH克隆工具 echo ==================== if "%1"=="" goto usage set "repo=%1" set "branch=%2" set "target=%3" :: 处理输入格式 echo %repo% | findstr "^git@" >nul if errorlevel 1 ( echo %repo% | findstr "^https://" >nul if errorlevel 1 ( :: 用户输入的是 用户名/仓库名 格式 set "repo=git@github.com:%repo%.git" ) else ( :: 将HTTPS地址转换为SSH地址 set "repo=%repo:https://github.com/=git@github.com:%" set "repo=%repo:/=.git%" ) ) :: 构建命令 set "cmd=git clone %repo%" if not "%branch%"=="" set "cmd=%cmd% -b %branch%" if not "%target%"=="" set "cmd=%cmd% %target%" echo. echo 执行命令:%cmd% echo. %cmd% if %errorlevel%==0 ( echo ✓ 克隆成功! ) else ( echo ✗ 克隆失败,请检查网络或仓库地址 ) goto :eof :usage echo 使用方法: echo gclone 用户名/仓库名 [分支] [目标目录] echo gclone HTTPS地址 [分支] [目标目录] echo gclone SSH地址 [分支] [目标目录] echo. echo 示例: echo gclone microsoft/vscode echo gclone https://github.com/facebook/react.git main react-app echo gclone git@github.com:vuejs/vue.git pause

6.2 批量克隆脚本clone-multi.bat

batch

@echo off echo 批量克隆工具 echo ============= setlocal enabledelayedexpansion :: 定义要克隆的仓库列表 set "repos[0]=microsoft/vscode" set "repos[1]=facebook/react" set "repos[2]=vuejs/vue" set "repos[3]=tensorflow/tensorflow" set "repos[4]=pytorch/pytorch" echo 可用仓库: for /l %%i in (0,1,4) do ( echo [%%i] !repos[%%i]! ) echo. echo 选择模式: echo 1. 克隆单个仓库 echo 2. 克隆所有仓库 echo 3. 自定义仓库列表 set /p mode="请选择(1/2/3): " if "%mode%"=="1" ( set /p index="输入仓库编号(0-4): " for /l %%i in (0,1,4) do ( if "!index!"=="%%i" ( echo 正在克隆: !repos[%%i]! git clone git@github.com:!repos[%%i]!.git ) ) ) else if "%mode%"=="2" ( echo 开始克隆所有仓库... for /l %%i in (0,1,4) do ( echo. echo [!repos[%%i]!] git clone git@github.com:!repos[%%i]!.git ) echo. echo 所有仓库克隆完成! ) else if "%mode%"=="3" ( echo 每行输入一个仓库(格式:用户名/仓库名),空行结束: set i=0 :input_loop set /p repo="> " if not "!repo!"=="" ( set "custom[!i!]=!repo!" set /a i+=1 goto input_loop ) echo. echo 开始克隆自定义仓库... for /l %%j in (0,1,!i!) do ( echo [!custom[%%j]!] git clone git@github.com:!custom[%%j]!.git echo. ) ) pause

🔧 第七部分:进阶配置与优化

7.1 多GitHub账户配置

config

# ~/.ssh/config 文件内容 # 个人账户(默认) Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal IdentitiesOnly yes # 工作账户 Host github-work HostName github.com User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yes # 其他Git托管服务 Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_gitlab

使用不同账户克隆:

cmd

# 使用个人账户(默认) git clone git@github.com:个人用户名/仓库.git # 使用工作账户 git clone git@github-work:公司用户名/仓库.git

7.2 Git配置优化

cmd

# 提高大文件传输性能 git config --global http.postBuffer 524288000 # 启用文件系统缓存(加速状态检查) git config --global core.fscache true # 设置并发线程数(提高克隆速度) git config --global core.packedGitLimit 512m git config --global core.packedGitWindowSize 512m # 启用压缩(节省带宽) git config --global core.compression 9 # 设置SSH连接超时 git config --global core.sshCommand "ssh -o ConnectTimeout=30 -i %USERPROFILE%\.ssh\id_ed25519"

7.3 Windows Terminal配置文件

在Windows Terminal的settings.json中添加:

json

{ "profiles": { "defaults": { "environment": { "GIT_SSH_COMMAND": "ssh -i %USERPROFILE%\\.ssh\\id_ed25519" } } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 4:31:24

RookieAI_yolov8:重新定义智能游戏辅助体验

还记得那些在激烈对局中,明明看到了敌人却因为反应速度跟不上而错失良机的时刻吗?想象一下,当你正准备瞄准时,一个智能助手已经帮你完成了精准定位,让你能够专注于战术策略而不是机械操作。这正是RookieAI_yolov8想要带…

作者头像 李华
网站建设 2026/10/11 0:14:59

STM32CubeMX串口接收数据流程通俗解释

STM32CubeMX串口接收数据流程通俗解释:从硬件到应用层的完整链路拆解 你有没有遇到过这样的情况? 接上GPS模块,串口就是收不到数据;或者蓝牙传过来一长串指令,总有一两字节莫名其妙“丢失”了。调试半天发现&#xff…

作者头像 李华
网站建设 2026/10/12 20:08:48

终极指南:如何用so-vits-svc实现专业级歌声转换

终极指南:如何用so-vits-svc实现专业级歌声转换 【免费下载链接】so-vits-svc 基于vits与softvc的歌声音色转换模型 项目地址: https://gitcode.com/gh_mirrors/sovit/so-vits-svc 你是否曾经梦想过将自己的歌声转换成专业歌手的音色?或者想要为视…

作者头像 李华
网站建设 2026/10/11 21:43:54

YOLO系列深度解读:单阶段检测为何能统治工业界?

YOLO系列深度解读:单阶段检测为何能统治工业界? 在智能制造车间的高速流水线上,每秒有数百件产品经过视觉质检系统。传统基于规则的图像处理方法面对焊点虚焊、元件错位等复杂缺陷时束手无策——它们无法泛化,更谈不上自适应学习。…

作者头像 李华
网站建设 2026/10/11 6:29:54

Chrome MCP Server:让AI助手接管你的浏览器,工作效率提升4倍

Chrome MCP Server是一个革命性的Chrome扩展,通过模型上下文协议(MCP)将您的浏览器功能完全暴露给AI助手,实现智能浏览器自动化、内容分析和语义搜索。这款工具让Claude等AI助手能够直接控制您日常使用的Chrome浏览器,…

作者头像 李华
网站建设 2026/10/7 0:40:40

如何高效配置团队代码规范:conform.nvim实用指南

如何高效配置团队代码规范:conform.nvim实用指南 【免费下载链接】conform.nvim Lightweight yet powerful formatter plugin for Neovim 项目地址: https://gitcode.com/gh_mirrors/co/conform.nvim conform.nvim是一款轻量级但功能强大的Neovim格式化插件&…

作者头像 李华