¿Por qué git no utiliza la identidad establecida en el archivo de configuración ssh?

¿Por qué git no utiliza la identidad establecida en el archivo de configuración ssh?

Estoy intentando conectarme a mi local.casa ruralservidor. Lo configuré para usar el servidor SSH integrado en el puerto 2222. Estoy ejecutando Windows. Gitea funciona bien.

Ahora quiero conectarme usandoEl imbécil de Cygwin. Para probar la conexión a mi repositorio estoy usando ells-remotocomando que funciona bien si uso elGIT_SSH_COMMANDopción como esta:

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

A continuación quiero simplificar la vida usando ~/.ssh/config:

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

Sin embargo, esto falla con el error Unable to open connection:

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

Problema: IdentityFileno se aplica. Esto funciona:

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

Sin embargo, estoy seguro de que mi opinión ~/.ssh/configes correcta, porque la conexión directa ssh -vv giteafunciona. Salida (extracto):

[...]
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).
[...]

Entonces, ¿por qué gitno se usa IdentityFilefrom ~/.ssh/config?

Respuesta1

Resultó que esa configuración GIT_SSH_COMMAND="ssh"era suficiente. Esto significa que gitestaba usando algún otro cliente SSH. Probablemente el de OpenSSH que estaba en la ruta del sistema:

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

Solucioné el problema agregando export GIT_SSH_COMMAND="/usr/bin/ssh"a~/.bash_profile

información relacionada