![¿Por qué git no utiliza la identidad establecida en el archivo de configuración ssh?](https://rvso.com/image/726408/%C2%BFPor%20qu%C3%A9%20git%20no%20utiliza%20la%20identidad%20establecida%20en%20el%20archivo%20de%20configuraci%C3%B3n%20ssh%3F%20.png)
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_COMMAND
opció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: IdentityFile
no 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/config
es correcta, porque la conexión directa ssh -vv gitea
funciona. 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é git
no se usa IdentityFile
from ~/.ssh/config
?
Respuesta1
Resultó que esa configuración GIT_SSH_COMMAND="ssh"
era suficiente. Esto significa que git
estaba 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