我怎样才能优先于git@tweak.example.com禁止git@example.com?

时间:2014-07-10 11:19:48

标签: git ssh

我在基于Git的伪造[1]上有多个帐户,我想通过SSH(不是HTTPS)检查和管理回购。我目前这样做:

  • 为每个帐户创建不同的密钥文件
  • 在我的SSH配置中,为每个帐户创建一个假主机
  • 将每个密钥文件作为IdentityFile分配给匹配的假主机
  • 使用git@fake.example.com而不是git@example.com执行Git任务

(这遵循给出here on SOelsewhere的建议。)

Host id1.example.com
  Hostname example.com
  User git
  IdentityFile ~/.ssh/id_rsa

Host id2.example.com
  Hostname example.com
  User git
  IdentityFile ~/.ssh/id_rsa

我现在可以ssh -T git@id1.example.comssh -T git@id2.example.com同样执行Git任务。

但是,我仍然使用git@example.com执行Git任务,这似乎与我的默认id_rsa密钥相关联。我试图按如下方式覆盖:

Host example.com
  Hostname example.com
  User git
  IdentityFile ~/.ssh/none

...其中~/.ssh/none是包含虚拟文本的文本文件。但是,ssh尝试仍然成功,与我的默认id_rsa密钥相关联。

如何覆盖此案例以使尝试失败,迫使我明确使用其中一个特定于帐户的主机?

[1]到目前为止,我知道这适用于GitHub和BitBucket,但我想这里有一个通用原则。

1 个答案:

答案 0 :(得分:0)

最简单的方法是删除id_rsa.key文件,以防止SSH找到“默认”身份验证密钥。

小心! 备份该文件!当然,保留配置的IdentityFile密钥。您的id_rsa.key只是没有~/.ssh