Mac上配置多个git账号
1. 环境格式化
目的:清空全局的git config
配置,否则会出现意想不到的问题
-
查看
git
列表git config --list
-
清空默认的用户名和邮箱(如果全局有配置话)
git config --global --unset user.name
git config --global --unset user.email
2. 使用ssh-keygen
生成不同账号的ssk-key
ssh-keygen -t ras -C [用户名] -b [长度] -f [文件名]
ssh-keygen
全部参数说明:
- **
-b** “Bits”
此选项指定密钥中的位数。管理 SSH 使用情况的法规可能要求使用特定的密钥长度。一般而言,2048 位对于 RSA 密钥而言已足够。 -e “导出”
此选项允许在 OpenSSH 密钥文件格式和RFC 4716“SSH 公钥文件格式”中记录的格式之间重新格式化现有密钥。-p[-P old_passphrase]
“更改密码” 此选项允许使用和[-N new_passphrase]
,更改私钥文件的密码[-f keyfile]
。-t "Type"
此选项指定要创建的密钥的类型。常用值为:-rsa
表示RSA密钥,-dsa
表示DSA密钥,-ecdsa
表示**椭圆曲线 DSA密钥**- **
-i "输入"
**当需要访问现有密钥时,此选项指定文件。 - **
-f** “文件”
指定存储创建的密钥的文件的名称。 - **
-N** “新建”
为密钥提供新密码。 - **
-P** “密码”
在读取密钥时提供(旧)密码。 - **
-C** “注释”
更改密钥文件的注释。 - **
-p
**更改私钥文件的密码。 - **
-q
**静默 ssh-keygen。 - **
-v
**详细模式。 - **
-l** “指纹”
打印指定公钥的指纹。 - **
-B** “Bubble babble”
显示密钥文件的“bubble babble”(Tectia 格式)指纹。 -F
在 known_hosts 文件中搜索指定的主机名。-R
从 known_hosts 文件中删除属于某个主机名的所有键。- **
-y
**读取私有 OpenSSH 格式文件并将 OpenSSH 公钥打印到标准输出。
实战效果:
3. 将生成的密钥添加到ssh-agent信任列表中
添加命令:ssh-add ~/.ssh/xxx
例如:ssh-add ~/.ssh/smiarnxzj_rsa
如果添加过程中遇到报错Error: Could not open **a** connection **to** your authentication agent.
时使用 ssh-agent bash
,然后在执行上述操作
4.在Git账号中配置公钥
使用cat ~/.ssh/xxx.pub
查看公钥内容,并将其复制。例如:cat ~/.ssh/smiarnxzj_rsa.pub
实际配置请参考实际git网站使用手册。
5. 配置多个ssh-key
1. 切换到.ssh
目下,新建或修改config
文件
vi ~/.ssh/config
2. 配置不同账号的ssh-key
例如:
参数说明:
键名 | 键值 | 规则 |
---|---|---|
Host | 主机 | 随便写 |
Hostname | 主机名 | 必须写正确,是git账号的网站地址 |
preferredAuthentications | SSH客户端身份认证方法 | 格式:
|
IdentityFile | 身份文件 | RSA具体路径地址 |
User | 用户 | 随便写 |
6. 测试链接
使用ssh -T
命令来验证是否已经配置OK
ssh -T git@{你的Host}
例如:
温馨提示:
- 使用
ssh -T
测试时,尽可能的关闭你的梯子;梯子开启状态下可能导致连接失败 - 公司内部的GIT 网站或私有部署的GIT服务器是无法连接成功的