Windows下Git多账号配置,同一电脑多个ssh-key的管理

本文详细介绍如何在Windows环境下配置Git以支持多个账号,包括生成私钥与公钥、配置config文件及测试验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.cnblogs.com/popfisher/p/5731232.html


这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有一些提到一些基础的操作。

  本文以配置github.com账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key,对git多一分了解。

  备注:这篇文章所有执行命令的地方都是在管理员模式下进行,即打开cmd,Git Bash客户端用管理员身份运行程序。


1. 生成github.com对应的私钥公钥(本文中文件地址C:\Users\popfisher目录)

执行命令 ssh-keygen -t rsa -C email 创建github对应的sshkey,命名为id_rsa_github,密码 123456 

ssh-keygen -t rsa -C 774232122@qq.com

 

2. 同样的方式生产git.oschina.net的私钥公钥(邮箱地址可以相同可以不同,本文相同)

执行命令ssh-keygen -t rsa -C email创建github对应的sshkey,命名为id_rsa_oschina,密码 123456 

ssh-keygen -t rsa -C 774232122@qq.com

 

3. 把上面得到的文件拷贝到git默认访问的.ssh目录(win10在用户目录下,本文C:\Users\popfisher.ssh)

除了秘钥文件之外,config文件是后面的步骤中手动生产的,known_hosts文件是后续自动生产的

 

4. 把github对应的公钥和oschina对应的公钥上传到服务器

 GitHub添加SSH key的方式如下图所示:

 

git.oschina.net添加SSH key的方式如下图所示:

 

5. 在.ssh目录创建config文本文件并完成相关配置(最核心的地方)

每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可

Host的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如:
Host mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:PopFisher/AndroidRotateAnim.git

 

HostName           这个是真实的域名地址
IdentityFile          这里是id_rsa的地址
PreferredAuthentications   配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
User            配置使用用户名

 

config文件配置如下:

复制代码
# 配置github.com
Host github.com                 
    HostName github.com
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github
    PreferredAuthentications publickey
    User username1

# 配置git.oschina.net 
Host git.oschina.net 
    HostName git.oschina.net
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina
    PreferredAuthentications publickey
    User username2
复制代码

 

 6. 打开Git Bash客户端(管理员身份运行)执行测试命令测试是否配置成功(会自动在.ssh目录生成known_hosts文件把私钥配置进去)

 

 

7. 测试成功之后就可以在电脑上同时使用git多多账号同时操作,互不影响了

clone github上的项目AndroidRotateAnim

  打开github上AndroidRotateAnim项目,复制其对应的clone命令入下图所示

 执行clone命令如下:

 

 

clone oschina.net上的项目AndroidDevTools

  打开git.oschina.net上AndroidDevTools项目,复制其对应的clone命令入下图所示

 

 执行clone命令如下:

 

学习心得

  在使用git的过程中,一般都只关注单账号的情况吗,工作中的配置也是直接由自己的上级发一个配置文档之类的东西,然后对着搞一遍就行了,可是当自己真正有这个需求的时候,突然发现束手无策。我自己当时也属于这个情况,有一天在家里,突然发现自己需要一台电脑支持多个SSH key的时候才发现自己不知道怎么下手了,于是就下定决心自己动手研究一下。对于技术,还是要亲自动手实践,实践出来的东西才能形成自己的真理,才不那么容易忘记。 

  这篇文章是我基于Win10平台上的实践,由于知识有限,可能还是没有总结得很完整,也可能在其他平台上会遇到一些其他的问题,没有时间去研究了,如果读者有遇到什么问题,欢迎留言讨论,共同学习。


<think>首先,用户的问题是关于通过SSH克隆仓库并配置SSH Key的。用户说:"我想通过 SSH 克隆仓库并需要配置 SSH Key 的方法 请问如何通过 SSH 克隆代码仓库 配置 SSH Key"。我需要基于系统指令来回答。 系统指令包括: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的引用内容。 提供的引用: - 引用[1]: 生成密钥、后台启动ssh代理、添加密钥到github账号、克隆代码仓库。 - 引用[2]: 在Windows环境下设置SSH克隆GitHub仓库,包括生成SSH密钥、启动SSH代理。 - 引用[3]: 关于https和SSH的区别,SSH需要添加SSH key。 用户的问题是关于配置SSH Key来通过SSH克隆仓库的。所以,我需要提供一个清晰的、逐步的指南,基于这些引用。 回答结构: 1. **介绍**:简要解释SSH克隆的优势和为什么需要配置SSH Key。 2. **步骤**:详细步骤,包括生成SSH Key、添加密钥到GitHub、克隆仓库。 3. **引用**:在适当的地方添加引用标识。 4. **相关问题**:生成相关问题。 确保使用中文回答。 步骤基于引用: - 生成SSH密钥:使用ssh-keygen命令。 - 启动SSH代理:在后台运行ssh-agent。 - 添加密钥到GitHub:复制公钥并添加到GitHub账户的SSH设置。 - 克隆仓库:使用SSH URL克隆。 引用[1]提到:1.生成密钥 2.后台启动ssh代理 3.添加密钥 4.克隆代码仓库。 引用[2]类似,但针对Windows。 引用[3]强调SSH需要密钥和权限。 我将编写一个通用的指南,不特定于Windows,但参考引用。 在回答中,自然地添加引用标识。例如,在提到步骤时,说"参考引用[1]"。 最后,生成相关问题。 现在,构建回答: **标题**:如何通过SSH克隆代码仓库并配置SSH Key **内容**: 1. **介绍**:SSH克隆比HTTPS更安全,不需要每次输入用户名和密码[^3]。 2. **步骤**: - **生成SSH密钥**:使用命令`ssh-keygen -t rsa -b 4096 -C "your_email@example.com"`生成密钥对[^1][^2]。 - **启动SSH代理**:运行`eval "$(ssh-agent -s)"`启动代理,并添加私钥[^1][^2]。 - **添加公钥到GitHub**:复制公钥内容(~/.ssh/id_rsa.pub),粘贴到GitHub账户的SSH设置中[^1][^3]。 - **克隆仓库**:使用`git clone git@github.com:username/repo.git`克隆仓库[^1][^3]。 3. **验证**:测试连接`ssh -T git@github.com`。 4. **相关问题**:生成几个相关问题。 确保语言流畅,使用中文。 数学表达式:在这个上下文中,可能没有数学表达式,但如果有,比如在命令中,我会处理。但命令是代码块,不是数学。 在示例中,有代码块,如Python代码。所以,我应该使用代码块来显示命令。 系统指令说:"所有行内数学表达式...必须使用$...$格式",但命令不是数学表达式,所以直接用代码块。 在回答中,使用代码块如示例所示。 最后,生成相关问题: - 基于主题,如SSH配置GitHub设置、问题解决。 相关问题示例: 1. 如何测试SSH连接是否成功? 2. 如果SSH克隆失败,如何排查问题? 3. 如何管理多个SSH密钥? 现在,写出完整回答。</think>### 如何通过 SSH 克隆代码仓库并配置 SSH Key 通过 SSH 克隆 GitHub 仓库比 HTTPS 方式更安全高效,因为它避免了每次操作时输入用户名和密码,只需配置一次 SSH Key 即可[^3]。下面我将以清晰步骤指导您完成整个过程。本指南基于通用环境(如 Linux 或 macOS),但原理适用于 Windows(需使用 Git Bash)。确保您已安装 GitSSH 客户端。 #### 步骤 1: 生成 SSH 密钥 SSH Key 是一对加密密钥(公钥和私钥),用于身份验证。公钥添加到 GitHub,私钥存储在本地。 - 打开终端(或 Git Bash),输入以下命令生成密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 替换为您的 GitHub 邮箱 ``` - 系统会提示保存位置(默认 `~/.ssh/id_rsa`),按 Enter 接受。 - 设置一个安全密码(可选,但推荐增强安全性)。 生成后,公钥在 `~/.ssh/id_rsa.pub`,私钥在 `~/.ssh/id_rsa`。确保不要泄露私钥[^1][^2]。 #### 步骤 2: 启动 SSH 代理并添加密钥 SSH 代理在后台管理密钥,简化连接过程。 - 启动代理: ```bash eval "$(ssh-agent -s)" # 启动代理,输出类似 "Agent pid 12345" ``` - 添加私钥到代理: ```bash ssh-add ~/.ssh/id_rsa # 如果设置了密码,会提示输入 ``` 这一步确保后续操作无需重复输入密钥密码[^1][^2]。 #### 步骤 3: 添加公钥到 GitHub 账户 将公钥上传到 GitHub,授权您的设备访问。 - 复制公钥内容: ```bash cat ~/.ssh/id_rsa.pub # 复制输出的全部内容 ``` - 登录 GitHub,进入 **Settings > SSH and GPG keys > New SSH key**。 - 粘贴公钥,设置标题(如 "My Laptop"),保存。 注意:只有仓库拥有者或管理员才能添加 SSH Key,否则无法克隆[^1][^3]。 #### 步骤 4: 通过 SSH 克隆仓库 现在您可以使用 SSH URL 克隆仓库。 -GitHub 仓库页面,点击 "Code",选择 "SSH" 并复制 URL(格式:`git@github.com:username/repo.git`)。 - 在终端运行克隆命令: ```bash git clone git@github.com:username/repo.git # 替换为您的仓库 URL ``` 首次连接时,系统会询问是否信任主机,输入 `yes` 继续。克隆成功后,即可操作仓库[^1][^3]。 #### 验证连接 测试 SSH 连接是否正常: ```bash ssh -T git@github.com # 成功时会显示 "Hi username! You've successfully authenticated..." ``` 如果失败,检查密钥权限(`chmod 600 ~/.ssh/id_rsa`)或重新添加公钥。 ### 注意事项 - **SSH vs HTTPS**:SSH 要求您拥有仓库权限,且 push 时无需用户名;HTTPS 则允许任何人克隆,但每次 push 需验证[^3]。 - **安全性**:定期更新密钥,避免在多台设备共享同一密钥。 - **问题排查**:连接失败时,运行 `ssh -vT git@github.com` 查看详细日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值