场景:
使用一个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
Host
:HostName
的别名,自定义。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