Аутентификация 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