同一个Git平台多个账户使用不同ssh密钥如何配置?

 提示:转载请注明原文链接

 本文链接:https://360us.net/article/95.html

场景:

使用一个git平台,比如github或者阿里云的云效。

有多个账户或者同一个账户,多个仓库使用不同ssh密钥,由于域名都一样,需要做一些配置才能用上对的密钥。

1. 生成ssh密钥到 ~/.ssh

2. 添加配置 ~/.ssh/config

# 账户1的配置
Host github-account1
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_account1

# 账户2的配置
Host github-account2
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_account2
  • HostHostName的别名,自定义。
  • HostName: ssh使用的实际域名或者ip。
  • User:ssh 链接里面的用户名,git ssh链接里面@符号前面的部分。
  • PreferredAuthentications:指定优先使用的身份验证方法,指定为publickey,即使用公钥进行身份认证。
  • IdentityFile:验证使用的私钥。

3. 克隆仓库

这一步的目的是把clone或者已存在仓库里面上游仓库ssh链接里面的主机域名地址替换成上面设置的别名Host

# 克隆账户1的仓库
git clone git@github-account1:username/repo.git

# 克隆账户2的仓库
git clone git@github-account2:username/repo.git

已存在仓库修改上游仓库地址:

# 为账户1设置远程仓库URL
git remote set-url origin git@github-account1:username/repo.git

# 为账户2设置远程仓库URL
git remote set-url origin git@github-account2:username/repo.git

或者修改仓库根目录配置文件.git/config,配置项[remote "origin"]下面的url,替换里面的域名为第二步配置的Host

这一步操作完,git ssh就能通过别名来找到对应的密钥配置了。

4. 测试配置

ssh -T github-account1
ssh -T github-account2

如果看到类似Welcome to xxx的欢迎消息,则说明配置没有问题。


本文链接:https://360us.net/article/95.html