How to change git ssh user for a remote push temporarily?

92,370

Solution 1

Have you tried using the whole remote URL?

git push ssh://<temp_user>@<host>/<repo_path> <local_branch>:<remote_branch>

and you will be prompted to provide the password

Solution 2

Once you've done the commit, you can use the following syntax:

git push https://<username>@github.com/<github repository> <local branch name>:<remote branch name>

You'll be asked for your github password to process the push.

For example, if your github username is "foobar", the repository clone url is "https://github.com/bar/ish.git", and the local and remote branches are named "nonce", you can use the following:

git push https://[email protected]/bar/ish.git nonce:nonce

Solution 3

I use

git push https://github.com/${userName}/${repoName}

It will prompt you to input username and password

Solution 4

The ssh address registered with git remote probably already include the user name, so you would need to use a complete ssh url like:

otheruser@remote:arepo

That won't work, because ssh will use the default public/private keys (currently used by the first user for authentication).

You can register a new remote in your local config:

# use the current ssh address registered for origin, changing just the user
# but you need a config file
git remote add originOtheruser otheruser:arepo

You must have a $HOME/.ssh/config file, in order to define the ssh entry 'otheruser', because ssh needs to know what public/private key it needs to use: it cannot be the default ones ($HOME/.ssh/id_rsa and $HOME/.ssh/id_rsa.pub)

See for instance "how to add deploy key for 2 repo with 1 user on github"

Host otheruser
HostName remote
User otheruser
IdentityFile ~/.ssh/otheruser

That supposes you have stored the public/private keys for otheruser as:

$HOME/.ssh/otheruser
$HOME/.ssh/otheruser.pub

Now, you can use that new remote to push:

git push originOtheruser master

Solution 5

For Windows User: Follow Instructions:

Control Panel >> User Account >> Credential Manager >> Windows Credential >> Generic Credential

You can change git credential:

click modify>>provide uname and password

Or you can remove git credential. Next time when you'll push repo, it'll ask you for credential.

Share:
92,370
Andor
Author by

Andor

Linux sysadmin

Updated on December 08, 2020

Comments

  • Andor
    Andor over 3 years

    Is it possible to change the ssh user temporarly for a "git push remote master" without messing up with .git/config or "git remote", or using the whole remote url?

    [root@host gitrepo]# git push otheruser@remote master # this does not work, but how great it would be
    [root@host gitrepo]# USER=otheruser git push remote master # still asks password for root
    
  • Andor
    Andor about 11 years
    I have searched through Stackoverflow and Google before asking this question. I need a fast/on-the-fly/ad hoc/temporary solution, not a permanent. The username is intentionally not included in the remote url and public key authentication is optional on this repo server. This is really not the thing I want.
  • VonC
    VonC about 11 years
    @user77376 The "public key authentication is optional on this repo server"? Then it isn't an ssh connection. If you need to specify another user, then $HOME/.ssh/config it is. That may not be what you want, but that is what is required to use ssh with a different user: a way to specify the public/private key. If you currently don't have an id_rsa(.pub) somewhere, then we are not talking about shh (or not the ssh I am familiar with).
  • Andor
    Andor about 11 years
    It's plain ssh, but one can authenticate with password also. For an ordinary ssh connection you should specify a username first and a password/public key/kerberos ticket or whatever authentication the server accepts.
  • VonC
    VonC about 11 years
    @user77376 ok. I will follow this question with interest then.
  • Andor
    Andor over 10 years
    Yes, I've tried it. Usually I copy-paste from "git remote -va". It works, though it creates an additional remote tracking branch on pulls.
  • Owen Blacker
    Owen Blacker almost 9 years
    This is Github specific, whereas the original question is about Git more generically.
  • qff
    qff almost 8 years
    Github note: If two factor authentication (2FA) is enabled, you have to type in a personal access token instead of your password, when prompted for your password (See: help.github.com/articles/providing-your-2fa-authentication-c‌​ode/…)
  • qff
    qff almost 8 years
    Github note: If two factor authentication (2FA) is enabled, you have to type in a personal access token instead of your password, when prompted for your password (See: help.github.com/articles/providing-your-2fa-authentication-c‌​ode/…)
  • scubadivingfool
    scubadivingfool almost 8 years
    There is a similar answer here stackoverflow.com/a/7927828/101923 which discusses the syntax to use for .ssh/config
  • nipponese
    nipponese over 6 years
    I usually use a pubkey to push commits. Even though I have specified a different user, I still get Permission denied (publickey). fatal: Could not read from remote repository. How do push so that I can enter my password for the different account?
  • oarfish
    oarfish over 3 years
    What am I doing wrong? I'm just getting fatal: not a git repository (or any of the parent directories): .git
  • laplasz
    laplasz over 3 years
    @oarfish please check that you can push with only git push might you are not in a git repo