Skip to main content

Git多用户

MarshioAbout 3 mingit

Windows

1、生成新的SSH密钥

1、生成 SSH 密钥,参考文档open in new window

# 在生成第二个 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 账户,参考文档open in new window

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=macopen in new window 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-Storageopen in new window 参考中文官网: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%A8open in new window

其他