Por que o git não está usando a identidade definida no arquivo de configuração ssh?

Por que o git não está usando a identidade definida no arquivo de configuração ssh?

Estou tentando me conectar ao meu localGiteaservidor. Configurei-o para usar o servidor SSH integrado na porta 2222. Estou executando o Windows. Gitea está funcionando bem.

Agora quero me conectar usandoIdiota do Cygwin. Para testar a conexão com meu repositório, estou usando ols-remotocomando que funciona bem se eu usar oGIT_SSH_COMMANDopção como esta:

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa" git ls-remote --exit-code -h ssh://username@localhost:2222/username/Repo.git

Em seguida, quero simplificar a vida usando ~/.ssh/config:

host gitea
 HostName localhost
 Port 2222
 IdentityFile ~/.ssh/id_rsa
 User username

No entanto, isso falha com erro Unable to open connection:

git ls-remote --exit-code -h ssh://gitea/username/Repo.git

Problema: IdentityFilenão é aplicado. Isso funciona:

GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa" git ls-remote --exit-code -h ssh://gitea/username/Repo.git

Tenho certeza, porém, de que o meu ~/.ssh/configestá correto, porque a conexão via direta ssh -vv giteafunciona. Saída (extrato):

[...]
debug1: Connecting to localhost [::1] port 2222.
debug1: Connection established.
[...]
debug1: Offering public key: RSA SHA256:XXX /home/username/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:XXX
debug1: Authentication succeeded (publickey).
Authenticated to localhost ([::1]:2222).
[...]

Então, por que gitnão está usando IdentityFilefrom ~/.ssh/config?

Responder1

Acontece que essa configuração GIT_SSH_COMMAND="ssh"foi suficiente. Isso significa que gitestava usando algum outro cliente SSH. Provavelmente aquele do OpenSSH que estava no caminho do sistema:

$ whereis ssh
ssh: /usr/bin/ssh.exe /cygdrive/c/WINDOWS/System32/OpenSSH/ssh.exe /usr/share/man/man1/ssh.1.gz

Resolvi o problema adicionando export GIT_SSH_COMMAND="/usr/bin/ssh"a~/.bash_profile

informação relacionada