多github上帐户:在的.ssh /配置主机什么样的价值观?(Multiple github ac

2019-08-16 18:11发布

我想了解下的.ssh / config并git的/ config中相互作用的配置如何。

这里的情况:我有两个独立的帐户GitHub的,我们姑且称之为GH0和GH1,我想既“passwordlessly”互动,即使用SSH密钥~/.ssh/id_rsa.GH0.pub~/.ssh/id_rsa.GH1.pub 。 目前,这个工程的GH0而不是GH1。 (例如, push命令GH1与死ERROR: Repository not found.\nfatal: The remote end hung unexpectedly. ; ssh -T git@github.com工作的,但仅仅是因为它连接GH0 。)

这意味着,对于每个这些github上的帐户余必须有在〜/ .ssh /配置,指定哪个ssh到使用它的密钥文件的对应部分。 (例如,用于GH0的部分将有类似IdentityFile ~/.ssh/id_rsa.GH0等)

现在的问题是:我有什么别的事情放在每一部分的? 进一步来说,

什么才是我必须把作为参数传递给Host在关键字~/.ssh/config

我到目前为止在此发现的信息是没有意义的我。 在一些例子中,我看到的东西一样

Host github.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa

Host ac2.github.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa_ac2

在这情况下“AC2”。 前缀在第二Host来自???

在哪里可以找到我的github账户对应的呢?

一些信息的,我发现导致人们猜测,争论的Host关键字实际上任意的,这意味着下面将罚款太

Host omgwtfbbq
    Hostname github.com
    User git
    IdentityFile ~/.ssh/GH0

Host 4.8.15.16.23.42
    Hostname github.com
    User git
    IdentityFile ~/.ssh/GH1

但即便如此,这还提出了另一个问题: 如何git (或github上)了解用于任何给定的命令,这两个部分的?

同样,我 1,这将在项目中指定.git/config文件,在某些[remote ...]部分,但如何?

1,我必须诉诸猜测,因为一件事,我一直没能找到文件的键值对中的.git / config中的解读。 我发现的最接近的是混帐配置手册页,但我不能找到这个页面中的任何文档的url = ...下一个场[remote ...]部分。 对于git的远程手册页,也没有关于这一领域的文档。

Answer 1:

请执行下列操作:

$ git remote add omgwtfbbq git@omgwtfbbq:user/repo.git
$ git pull omgwtfbbq master

这将使用Host您已在定义的别名~/.ssh/config的git的主机,因此将使用IdentityFile你设置。



Answer 2:

是的, Host中的.ssh / config文件行是一个别名。 你在的地方使用它github.com ,以及任何会正确使用SSH将读取实际的主机名的文件和交换,并使用给定的密钥文件和用户名,如果他们已发出。



文章来源: Multiple github accounts: what values for Host in .ssh/config?