我与两个不同的 git 存储库交互,它们都是 GitLab 实现。
由于我需要使用不同的用户(和电子邮件)来访问它们,因此我创建了两个 ssh 密钥:比如说id_rsa_1和id_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)
我的问题是每次使用时git,config都不会考虑该文件。它一直在寻找 id_rsa 文件。
我的配置文件有什么问题?是否Host只是一个个人识别码,或者它在考虑git寻找钥匙?
我应该提供哪个用户?“git”还是我在每个服务器中注册的真实用户?
我的config文件有什么问题?非常感谢您提前。
该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。