Git多用户
About 3 min
Windows
1、生成新的SSH密钥
1、生成 SSH 密钥,参考文档
# 在生成第二个 SSH 密钥时,需要与第一个 SSH 密钥在命名上区分开
ssh-keygen -t ed25519 -C "[email protected]"
Generating public/private ed25519 key pair.
# 在这里我讲第二个 SSH 密钥命名为 id_ed25519_work
Enter file in which to save the key (~/.ssh/id_ed25519): ~/.ssh/id_ed25519_work
Enter passphrase for "~/.ssh/id_ed25519_work" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_ed25519_work
Your public key has been saved in ~/.ssh/id_ed25519_work.pub
The key fingerprint is:
SHA256:fektQ7T7svYfPy+pZ++7+LhIs0PZz46xJe53hDfU61c [email protected]
The key's randomart image is:
+--[ED25519 256]--+
| |
| |
| . .|
| . . o ..|
| S . B ...|
| * +.oE|
| .o=o=*o|
| ..B+&*=|
| +=/BX&|
+----[SHA256]-----+
2、将公钥配置在 Github 账户,参考文档
2、添加到 ssh-agent
使用管理员打开 power-shell
# 1、确认ssh-agent服务是否启动
get-service ssh*
# 2、如果ssh-agent为stopped,则启动,否则直接跳到第三步
# 2.1 设置ssh-agent启动方式为手动
Set-Service -Name ssh-agent -StartupType Manual
# 2.2 启动ssh-agent
Start-Service ssh-agent
# 2.3 设置ssh-agent启动方式为自动
Set-Service -Name ssh-agent -StartupType automatic
# 3、添加密钥到ssh-agent
ssh-add c:/Users/username/.ssh/id_private
# 出现Identity added: c:/Users/username/.ssh/id_private ([email protected])代表添加成功
验证一下是否配置成功
ssh -T [email protected]
Hi imarshio! You've successfully authenticated, but GitHub does not provide shell access.
# 出现上面语句则代表配置成功
# 如果出现超时可以试试如下命令
ssh -T -p 443 [email protected]
3、配置多个账户的 SSH
3.1、将多个账户的私钥添加到 ssh-agent
ssh-add c:/Users/username/.ssh/id_private
3.2、更新 ssh config
Windows 的 ssh config 文件在c:\Users\demouser\.ssh目录,
# 区分
Host github.com
HostName github.com
AddKeysToAgent yes
IgnoreUnknown UseKeychain
UseKeychain yes
IdentityFile c:/Users/shenqing/.ssh/id_marshio
Host git.deepq.tech
HostName git.deepq.tech
IgnoreUnknown UseKeychain
AddKeysToAgent yes
UseKeychain yes
IdentityFile c:/Users/shenqing/.ssh/id_rsa
TIPS https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?platform=mac IgnoreUnknown参数只有在mac下支持。
Mac
1、生成新的SSH密钥
同上
2、修改 config 文件
cd ~/.ssh/
# 查看是否存在 config 文件, 如果没有就创建一个
vim config
# 填充如下内容
Host work # host 别名,会用在 ssh -T 的测试中
HostName 192.168.1.3 # IP 地址或域名
User git #
IdentityFile ~/.ssh/id_ed25519_work # 私钥存放地址
IdentitiesOnly yes # 确保只使用指定的密钥
参考
参考英文官网:https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage 参考中文官网:https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%87%AD%E8%AF%81%E5%AD%98%E5%82%A8
其他
