OK, acho que encontrei uma solução definitiva.
O problema é que, independentemente do terminal usado (puttycyg, mintty, cmd.exe), o Git por padrão, na ausência de alternativas melhor configuradas, tenta usar um "prompt de senha simples" (como você pode ler em a descrição da opção de configuração core.askpass
).
O prompt de senha simples aparentemente funciona apenas no UNIX real, mas não no Cygwin.
A solução é instalar um programa compatível com SSH_ASKPASS para Windows e configurar o Git para usá-lo.
O que eu fiz foi:
- Instale o aplicativo win-ssh-askpass descompactando e copiando para C: \
- Faça o download e instale o tempo de execução do Borland Delphi 5 exigido pelo win-ssh-askpass (difícil encontrar atualmente, mas encontrou um em link )
- Configure o Git para obter senhas usando win-ssh-askpass:
git config --global core.askpass "C:/win_ssh_askpass.exe"
. Observe que o arquivo EXE tem sublinhados em seu nome, não sinais de menos. - Lembre-se de sempre colocar seu login no URL (
https://<user>@<domain>/<repository>
). Caso contrário, o Git solicitará o login antes de solicitar a senha, usando o mesmo utilitário askpass. Você pode inadvertidamente inserir sua senha como o login, que será enviado para o webserwer e registrado em seu log de acesso como texto simples!
Agora o Git pede a senha usando uma elegante janela GUI e funciona independentemente do terminal usado:)