SSH配置被Git客户端忽略了。

7
我和两个不同的GitLab实现交互,它们都是git存储库。由于我需要使用不同的用户(和电子邮件)来访问它们,因此我创建了两个ssh密钥:假设为id_rsa_1id_rsa_2。之后,我编写了一个~/.ssh/config文件,以指定何时应使用每个id_rsa文件。配置文件如下:
Host gitlab.host1.com-user1
    HostName gitlab.host1.com
    User user1
    IdentityFile ~/.ssh/id_rsa_1

Host gitlab.host2.com-user2
    HostName gitlab.host2.com
    User user2
    IdentityFile ~/.ssh/id_rsa_2

我的问题是每次使用 git 时,都没有考虑到 config 文件。它总是在寻找 id_rsa 文件。
我的配置文件有什么问题? Host 只是个人标识符还是在 git 寻找密钥时也要考虑它?
我应该提供哪个用户?"git" 还是在每个服务器上注册的真实用户?
我的 config 文件到底有什么问题? 非常感谢您的帮助。
1个回答

7

Host条目是匹配查找密钥时请求的主机的模式。然后,HostName是实际登录的主机,并默认为Host的值。因此,你可以这样说:

Host gitlab.host1.com
    User user1
    IdentityFile ~/.ssh/id_rsa_1

当您调用git时,也可以将gitlab.host1.com-user1指定为主机,它应该可以与您当前的配置一起使用。

有关更多信息,请查看man ssh_config


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接