我使用带有大量子模块的 git repo。其中一些在公司 github 上,其他在 Gerrit 上。
最近,我开始遇到 plink 不再接受服务器密钥的问题。因此我切换到 openssh,它有效。理想情况下,我想修复 plink 问题,但目前我选择了 openssh 解决方法。
我的问题是:
1) 如果我没有为 ssh 指定用户名,它只会使用我的 Windows 用户名(包括域名)2) 如果我在 GIT_SSH_COMMAND 中指定用户名,那么它会将该用户名用于所有 git 连接,无论远程 URL 是否指定了其他内容。因此 git@github URL 不起作用。3) 我可以在远程服务器中为 gerrit 存储库指定用户名,但我想避免这样做,因为有很多存储库
3) 是我唯一的选择吗?我该如何解决这个困境?
答案1
我的项目实际上记录了这一点,但我忘记正确配置它:
您可以在 ~/.ssh/config 中为某个服务器设置 openssh 使用的用户:
Host gerrit.my.server
User myUser
这使我能够为服务器而不是每个存储库配置一次,并且我解决了它尝试使用域+用户名连接的问题。