Почему git не использует идентификатор, установленный в файле конфигурации ssh?

Почему git не использует идентификатор, установленный в файле конфигурации ssh?

Я пытаюсь подключиться к своему локальномуГитеасервер. Я настроил его на использование интегрированного сервера SSH на порту 2222. Я работаю под управлением Windows. Gitea работает нормально.

Теперь я хочу подключиться с помощьюМерзость Cygwin. Для проверки подключения к моему репозиторию я используюls-удалённыйкоманда, которая отлично работает, если я используюGIT_SSH_COMMANDтакой вариант:

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

Далее я хочу упростить жизнь, используя ~/.ssh/config:

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

Однако это приводит к ошибке Unable to open connection:

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

Проблема: IdentityFileне применяется. Это работает:

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

Я уверен, что мой ~/.ssh/configвариант правильный, потому что подключение напрямую ssh -vv giteaработает. Вывод (выдержка):

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

Так почему же gitне используется IdentityFilefrom ~/.ssh/config?

решение1

Оказалось, что этой настройки GIT_SSH_COMMAND="ssh"было достаточно. Это значит, что gitиспользовался какой-то другой SSH-клиент. Вероятно, тот, что от OpenSSH, который оказался в системном пути:

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

Я исправил проблему, export GIT_SSH_COMMAND="/usr/bin/ssh"добавив~/.bash_profile

Связанный контент