SSH 配置被 git 客户端忽略

Jul*_*ENS 5 git ssh gitlab

我与两个不同的 git 存储库交互,它们都是 GitLab 实现。

由于我需要使用不同的用户(和电子邮件)来访问它们,因此我创建了两个 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
Run Code Online (Sandbox Code Playgroud)

我的问题是每次使用时gitconfig都不会考虑该文件。它一直在寻找 id_rsa 文件。

我的配置文件有什么问题?是否Host只是一个个人识别码,或者它在考虑git寻找钥匙?

我应该提供哪个用户?“git”还是我在每个服务器中注册的真实用户?

我的config文件有什么问题?非常感谢您提前。

Aer*_*aux 7

Host条目是与您在查找密钥时请求的主机相匹配的模式。然后,HostName是实际登录的主机,默认为 的值Host。所以,你可以说:

Host gitlab.host1.com
    User user1
    IdentityFile ~/.ssh/id_rsa_1
Run Code Online (Sandbox Code Playgroud)

您还可以在调用 git 时指定gitlab.host1.com-user1为主机,它应该适用于您当前的配置。

欲了解更多信息,您可以检查man ssh_config