Аутентификация git ssh завершается неудачно с помощью ssh_askpass: posix_spawn: неизвестная ошибка

Я использую установку на Windows 10 x64, где я устанавливаю и управляю git с помощью scoop, а скорее загружаю и запускаю установщик самостоятельно. Через PowerShell я запускал

scoop install git
scoop install openssh
[environment]::setenvironmentvariable('GIT_SSH', (resolve-path (scoop which ssh)), 'USER')

Тем не менее, теперь, когда я пытаюсь запустить команды в Git Bash, как

git clone git@example.org:vendor/repository.git

или простой

git push/pull

Я только получаю

CreateProcessW failed error:193
ssh_askpass: posix_spawn: Unknown error

вместо того, чтобы Git Bash спрашивал у меня пароль моего SSH-ключа.

Я использую ту же установку (git, установленный через scoop) на многих других Windows 10 x64, и никаких проблем там не возникает. Так что я не уверен, что с этим не так. Ранее на той же машине у меня был установлен git без совка, и Git Bash работал нормально. Я полностью удалил git (а также перезапустил компьютер, чтобы быть уверенным) перед тем, как переустановить его с помощью scoop.

SSH_ASKPASS Переменная окружения содержит следующее, если это уместно:

$ echo ${SSH_ASKPASS}
/mingw64/libexec/git-core/git-gui--askpass

Не уверен, на что ссылается эта папка (что-то внутреннее в Git Bash, предположительно?), Так как она явно не существует на моей машине.

Обновить

Когда используешь git-with-openssh вместо просто git а также openssh отдельно это работает. Тем не менее, я не использую это на своих других машинах, поэтому я все еще хотел бы знать, почему это не работает здесь.

2 ответа

Я почти уверен, что мой ответ не касается исходного случая OP. Но по состоянию на 2020 год, похоже, есть аналогичная проблема с другим способом ее решения, и именно так я поступил в моем случае.

Отчасти проблема в том, что теперь в Windows 10 доступна собственная версия OpenSSH, и, по крайней мере, в случае моей рабочей машины, похоже, что эта опция включена по умолчанию.

Однако этот связанный OpenSSH несовместим с Git bash, поэтому, если вы хотите его использовать, вы должны заставить git использовать предоставленный совком OpenSSH (либо из openssh или git-with-opensshпакеты). Это означает перезаписьGIT_SSH переменную окружения, например, добавив строку, подобную этой, в ваш.bashrc:

export GIT_SSH='C:\Users\rogs\scoop\apps\git-with-openssh\current\usr\bin\ssh.exe'

Надеюсь, это поможет.

Даже если эта тема уже очень старая, проблема сохраняется. Я обнаружил, что достаточно просто отключить переменную окружения, чтобы избавиться от этой ошибки.

      unset SSH_ASKPASS

Просто поместите это в свой .bash_profile и / или свой .bashrc

Другие вопросы по тегам