The argument "-i" passed to GIT_SSH_COMMAND is being ignored

jerry picture jerry · Feb 20, 2018 · Viewed 7.3k times · Source

I want to use other IdentityFile for git. I want to use it dynamically, not via config. I'm doing this:

  $ GIT_SSH_COMMAND='ssh -i /home/my_user/.ssh/id_ed25519' git pull origin master
  repository access denied.
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.

The pub key "id_ed25519.pub" is at my bitbucket.

And this fails too:

  $ git pull origin master
  repository access denied.
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights
  and the repository exists.

And:

$ git remote -v
origin  [email protected]:company123/repo456.git (fetch)
origin  [email protected]:company123/repo456.git (push)

Adding "-v" to 'ssh -i /home/my_user/.ssh/id_ed25519' reveals that my RSA key is being used, instead of ED. Why?

Answer

AlexTG picture AlexTG · Apr 14, 2019

I had the same issue with the recent Ubuntu version:

Using -vvv revealed following:

debug2: key: /home/ubuntu/.ssh/id_rsa (0x5628e48246d0), agent
debug2: key: /home/ubuntu/code/id_rsa (0x5628e4820af0), explicit

Adding -o IdentitiesOnly=yes solved it.

Full git command:

GIT_SSH_COMMAND='ssh -o IdentitiesOnly=yes -i /home/ubuntu/code/id_rsa -F /dev/null' git pull