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

本文介绍在Windows环境下配置Git多账号支持,管理多个ssh - key的方法。包括生成不同平台对应的私钥公钥、上传公钥到服务器、在.ssh目录创建并配置config文件、测试配置是否成功等步骤,还分享了学习心得,强调实践的重要性。

 

原文:

https://blog.youkuaiyun.com/jiabailong/article/details/84236802?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

原文转载自:

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

 

 

顺利添加多账号。不过还没有实现同步推送。可以参考:

Git管理多个远程仓库(GitHub和Coding)

https://blog.youkuaiyun.com/gorpeln/article/details/89355095?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.baidujs&dist_request_id=19588b92-0670-476d-8bc3-47fe596e2325&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.baidujs

git实现本地仓库同时关联多个远程仓库(Gitee和GitHub)

https://blog.youkuaiyun.com/xiecheng1995/article/details/106570059?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242

 

以下是标题原文:

 

 

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

清澈见底-66 2018-11-19 11:30:09  686  收藏

分类专栏: 问题

转载自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方式配置Git账号的具体方法。从引用的资料看,用户已经收集了不少配置信息,包括单账号和多账号SSH配置流程。不过用户的需求表述比较笼统,需要我整理出清晰的步骤。 用户可能是个刚接触Git的开发人员,正在搭建开发环境。ta的深层需求应该是想安全高效地管理代码仓库权限,避免每次操作都输密码。考虑到SSH配置容易遇到的坑,我需要特别强调关键步骤的注意事项。 先整理单账号配置的核心步骤:创建密钥对是基础,这里要强调-t rsa参数和空密码的风险;公钥上传到Git平台的操作界面差异需要说明;最后的连接测试能验证整个流程。这部分适合大多数用户的基本需求。 用户提供的引用里提到多账号配置(引用2/3/4),看来ta可能同时管理工作和个人项目。config文件配置是核心难点,需要详细说明Host别名的作用和路径格式——特别是Windows和Linux的区别。这里要提醒用户避免常见的路径错误和权限问题。 测试环节容易被忽略,但特别重要。我会给出具体的ssh -T命令示例,并解释各种错误信息的含义。常见问题如密钥权限过大(chmod 700解决)、config文件格式错误等都需要预警。 最后补充些实用场景建议:比如新手指南里提到的密码保护安全性,多账号时的仓库克隆命令差异。可能用户没意识到,配置多个SSH key其实还能管理不同Git平台(GitHub/GitLab等)的账号。 等等,用户引用4里提到非22端口的配置,这个特殊情况也得包含进去。有些企业私有Git仓库会改端口,config文件的Port参数这时候就关键了。 </think>以下是SSH方式配置Git账号的详细步骤(单账号&多账号),结合最佳实践整理: --- ### **一、单账号配置** #### 1. **生成SSH密钥** ```bash ssh-keygen -t rsa -C "your_email@example.com" ``` - 连续按3次回车(默认路径`~/.ssh/id_rsa`,不设密码) - 生成文件:`id_rsa`(私钥)和`id_rsa.pub`(公钥) #### 2. **添加公钥到Git平台** ```bash cat ~/.ssh/id_rsa.pub # 复制输出的内容 ``` - **GitHub/GitLab**: 设置 → SSH Keys → 粘贴公钥并保存[^1][^3] #### 3. **测试连接** ```bash ssh -T git@github.com # GitHub测试 ssh -T git@gitlab.com # GitLab测试 ``` - 出现 `You've successfully authenticated` 即成功[^1] --- ### **二、多账号配置** #### 1. **生成多组密钥** ```bash # 工作账号 ssh-keygen -t rsa -C "work@email.com" -f ~/.ssh/id_rsa_work # 个人账号 ssh-keygen -t rsa -C "personal@email.com" -f ~/.ssh/id_rsa_personal ``` #### 2. **配置`.ssh/config`文件** ```bash touch ~/.ssh/config # 创建文件 ``` ```config # 工作账号配置 Host work-git # 自定义别名 HostName github.com User git IdentityFile ~/.ssh/id_rsa_work # 个人账号配置 Host personal-git HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal ``` #### 3. **平台添加公钥** - 分别将 `id_rsa_work.pub` 和 `id_rsa_personal.pub` 添加到对应账号的SSH Keys中[^2][^4] #### 4. **测试连接** ```bash ssh -T work-git # 测试工作账号 ssh -T personal-git # 测试个人账号 ``` #### 5. **克隆仓库时使用别名** ```bash git clone work-git:username/work-repo.git # 代替 git@github.com:... git clone personal-git:username/personal-repo.git ``` --- ### **关键注意事项** 1. **文件权限** ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/* ``` 2. **非标准端口** 在`config`中添加 `Port 2222`(如GitLab私有部署)[^4] 3. **全局身份标识** ```bash # 需为不同仓库单独配置用户信息 git config user.email "work@email.com" git config user.name "Work Name" ``` --- ### **常见问题排查** | 问题现象 | 解决方案 | |-------------------------|------------------------------| | `Permission denied` | 检查`config`路径和密钥权限 | | `Host key verification failed` | 执行 `ssh-keyscan -H 主机名 >> ~/.ssh/known_hosts` | | 克隆时仍要求密码 | 确认克隆地址使用`Host`别名而非原URL | > 多账号场景下,`config`文件的`Host`别名是核心枢纽,它将不同的密钥绑定到同一域名(如github.com),通过别名路由认证请求[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值