Git development
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Utku <ugultopu@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [BUG] Git is not using the configured SSH key when there is another SSH key added to the SSH agent
Date: Sat, 27 Mar 2021 18:54:56 +0000	[thread overview]
Message-ID: <YF9/gCIWaFBicdpo@camp.crustytoothpaste.net> (raw)
In-Reply-To: <967BFF88-A8E1-4EEC-B298-668012E42C03@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2239 bytes --]

On 2021-03-27 at 18:31:10, Utku wrote:
> # Versions
> 
> - Git 2.30.1
> - macOS 10.15.7
> 
> # Steps to Reproduce
> 
> - Have two SSH key pairs on your machine, one with a passphrase and
> other without. The keys were created by running `ssh-keygen` in my
> case.
> 
> - Add the key with a passphrase to the SSH agent by running `ssh-add`
> and entering the passphrase.
> 
> - Have an entry like the following in your `~/.ssh/config`:
> 
>       Host someName
>           HostName bitbucket.org
>           User git
>           IdentityFile ~/.ssh/private-key-of-the-pair-without-a-passphrase
> 
> 
> - Add the public key of the pair without a passphrase to your BitBucket
> account.
> 
> - Run `git clone someName:path/to/your/repository.git`. You will get a
> not authorized error. As far as I can tell, this means that Git has
> tried to use the key with the passphrase (which is added to the SSH
> agent). Since this key is **not** the key that was added to the
> BitBucket account, we received a not authorized error.
> 
> - Add the key without a passphrase to your SSH agent by running
> `ssh-add` and try the same command (`git-clone`) again. It will work.
> 
> - Now, remove both keys from the SSH agent by running `ssh-add -D` and
> try and try the same command (`git-clone`) again. It will still work.
> 
> I didn't test but don't believe this has something to do with the key
> having a passphrase or not. Also, I believe that I'm not using macOS
> Keychain to store the decrypted keys.

This behavior is completely due to SSH.  Git doesn't tell OpenSSH to
behave in any particular way; instead, it tells it to make a connection
with the specified parameters to the specified server, and OpenSSH makes
its own decision about what that means.

In your case, the option you want is "IdentitiesOnly yes".  This tells
OpenSSH to always use the specified identity, even if a different one is
available in the agent.  You can add it to the configuration that you
have above and things should work.

You can also see an example of this configuration in the FAQ:
https://git-scm.com/docs/gitfaq#multiple-accounts-ssh
-- 
brian m. carlson (he/him or they/them)
Houston, Texas, US

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

  reply	other threads:[~2021-03-27 18:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-27 18:31 [BUG] Git is not using the configured SSH key when there is another SSH key added to the SSH agent Utku
2021-03-27 18:54 ` brian m. carlson [this message]
2021-03-27 18:58   ` Utku

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YF9/gCIWaFBicdpo@camp.crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=git@vger.kernel.org \
    --cc=ugultopu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox