SSH 配置被 git 客户端忽略

SSH Config is ignored by git client

我与两个不同的 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

我的问题是每次我使用 git 时,都没有考虑到 config 文件。它一直在寻找 id_rsa 文件。

我的配置文件有什么问题? Host 只是一个个人标识符,还是在 git 搜索密钥时将其考虑在内?

我应该提供哪个用户? "git" 还是我在各个服务器注册的真实用户?

我的 config 文件到底出了什么问题? 非常感谢您。

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

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

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

更多信息,您可以查看man ssh_config