我在 Windows 上使用
git
,但无法使用正确的用户名进行身份验证,这与我登录到本地操作系统的用户名不同。
这是详细信息。
上游存储库位于我想通过 SSH 连接的远程计算机上:
$ git remote -v
origin ssh://someuser@host/path (fetch)
origin ssh://someuser@host/path (push)
我使用 SSH 密钥进行身份验证。
仅运行
ssh
命令即可正常工作:
$ ssh someuser@host "whoami"
someuser
但是,当尝试将更改推送到存储库时,系统会提示我在 本地操作系统用户的用户名下输入密码,而不是远程路径中指定的用户:
$ git push
(OSuser@host) Password for OSuser@host:
我已配置
user.name
:
$ git config user.name
someuser
但是没有效果。
我尝试从
git pull
shell 和 Windows 的 git-bash
运行 cmd
。结果是一样的。
我应该怎么做才能让它发挥作用?
事实证明,我更改了默认的 SSH 命令,明确指定了用户名,然后就忘记了:
$ git config core.sshCommand
ssh -l OSuser
这就是为什么远程路径中的用户名被命令中的用户名覆盖的原因。
感谢Jim Redmond,他暗示了上面的想法。