我遇到了一些麻烦,让两个不同的SSH密钥/GitHub帐户一起玩得很好。我有以下设置:
使用git@github.com:accountname从一个帐户访问回购
从另一个帐户使用git@github.com:另一个帐户访问回购
每个帐号都有自己的SSH密钥。两个SSH密钥都已经添加,我已经创建了一个配置文件。我不相信配置文件是正确的。我不太确定如何指定使用git@github.com:accountname访问的回购应该使用id_rsa和git@github.com:anotheraccount应该使用id_rsa_anotheraccount。
我花了很多时间来理解所有的步骤。让我们一步一步来描述:
使用ssh-keygen -t rsa创建新的身份文件。给它一个替代方案,比如proj1。Id_rsa和命中,因为您不需要密码短语。
在.ssh/config中添加新的section:
主机proj1.github.com
主机名:github.com
PreferredAuthentications publickey
IdentityFile ~ / . ssh / proj1.id_rsa
考虑第一部分并注意proj1.github.com,我们稍后将回到这一部分。
将标识添加到ssh代理ssh- Add ~/.ssh/proj1.id_rsa
这就是我第一次搞砸的地方-现在当你想克隆一个proj1 repo时,你使用proj1.github.com(正是配置文件中的主机)来做它。
Git克隆git@proj1.github.com。
一个很好的教程。
不要惹主人
我花了很多时间来理解所有的步骤。让我们一步一步来描述:
使用ssh-keygen -t rsa创建新的身份文件。给它一个替代方案,比如proj1。Id_rsa和命中,因为您不需要密码短语。
在.ssh/config中添加新的section:
主机proj1.github.com
主机名:github.com
PreferredAuthentications publickey
IdentityFile ~ / . ssh / proj1.id_rsa
考虑第一部分并注意proj1.github.com,我们稍后将回到这一部分。
将标识添加到ssh代理ssh- Add ~/.ssh/proj1.id_rsa
这就是我第一次搞砸的地方-现在当你想克隆一个proj1 repo时,你使用proj1.github.com(正是配置文件中的主机)来做它。
Git克隆git@proj1.github.com。
一个很好的教程。
不要惹主人
使用多个Git帐户和克隆而不做任何更改的最简单方法是将您的用户名添加到ssh配置中。
开放的~ / . ssh / config。如果一个人不存在,就去创造
添加主机条目,如下所示
Host github.com:<YOUR_GITHUB_USERNAME>
AddKeysToAgent yes
IdentityFile ~/.ssh/<YOUR_SSH_KEY_FILENAME>
将<YOUR_SSH_KEY_FILENAME>替换为您在。ssh文件夹中的密钥文件名(例如:id_ed25519)。
为每个要维护的github帐户添加一条主机记录。
现在git克隆将简单的git克隆github.com:<YOUR_GITHUB_USERNAME>/your-repo.git。克隆时不需要记住自定义gihub域;-)
做了一个主旨与进一步的信息https://gist.github.com/udantha/fed5439630eaf4651272f4fba6e1c6a3
我在github上有2个帐户,这是我所做的(在linux上)使它工作。
Keys
创建2对rsa密钥,通过ssh-keygen,正确命名它们,使生活更容易。
通过ssh-add path_to_private_key向本地代理添加私钥
对于每个github帐户,上传一个(不同的)公钥。
配置
~ / . ssh /配置
Host github-kc
Hostname github.com
User git
IdentityFile ~/.ssh/github_rsa_kc.pub
# LogLevel DEBUG3
Host github-abc
Hostname github.com
User git
IdentityFile ~/.ssh/github_rsa_abc.pub
# LogLevel DEBUG3
为repo设置远程url:
对于主机github-kc中的回购:
Git远程设置-url来源git@github-kc:kuchaguangjie/pygtrans.git
对于主机github-abc中的回购:
Git远程集-url来源git@github-abc:abcdefg/yyy.git
解释
~/.ssh/config中的选项:
Host github-<identify_specific_user>
Host could be any value that could identify a host plus an account,
it don't need to be a real host,
e.g
github-kc identify one of my account on github for my local
laptop,
When set remote url for a git repo, this is the value to put after git@, that's how a repo maps to a Host, e.g git remote set-url origin git@github-kc:kuchaguangjie/pygtrans.git
[Following are sub options of Host]
Hostname
specify the actual hostname, just use github.com for github,
User git
the user is always git for github,
IdentityFile
specify key to use, just put the path the a public key,
LogLevel
specify log level to debug, if any issue, DEBUG3 gives the most detailed info.