使用 git remote 注册的 ssh 地址可能已经包含用户名,因此您需要使用完整的 ssh url,例如:
otheruser@remote:arepo
那是行不通的,因为 ssh 将使用默认的公钥/私钥(当前由第一个用户用于身份验证)。
您可以在本地配置中注册一个新的遥控器:
# use the current ssh address registered for origin, changing just the user
# but you need a config file
git remote add originOtheruser otheruser:arepo
您必须有一个$HOME/.ssh/config
文件,才能定义 ssh 条目“其他用户”,因为 ssh 需要知道它需要使用什么公钥/私钥:它不能是默认的($HOME/.ssh/id_rsa
和$HOME/.ssh/id_rsa.pub
)
参见例如“如何在 github 上为 1 个用户添加 2 个 repo 的部署密钥”
Host otheruser
HostName remote
User otheruser
IdentityFile ~/.ssh/otheruser
假设您已将其他用户的公钥/私钥存储为:
$HOME/.ssh/otheruser
$HOME/.ssh/otheruser.pub
现在,您可以使用该新遥控器进行推送:
git push originOtheruser master