threads / bug / 62214

Bug in git-gui

Subject: Bug in git-gui

## tl;dr

4 messages between Sep 29, 2024 and Sep 29, 2024.

replies: 3people: 2as markdown or json

Clemens Haffner· Sep 29, 2024, 17:05 UTC · lore
Hi,
I think I found a bug in git-gui on Windows (Windows 10 64 bit)

git-gui Version 0.21.GITGUI git Version: 2.44.0.windows.1

To reproduce: (I have not tested it with rsa keys)
- Create an ed25519 key with a passphrase (--> .ssh/id_ed25519). 
Help->Show ssh key detects that key perfectly and shows the Public key 
to copy
- Push something to a repository:
--> it will fail.
 >  Pushing to xxx.xxx:clemens/test_repo.git
 >  CreateProcessW failed error:193
 >  ssh_askpass: posix_spawnp: Unknown error
 >  git@git.xxx.xxx: Permission denied (publickey).
 >  fatal: Could not read from remote repository.
 >
 >  Please make sure you have the correct access rights
 >  and the repository exists.
- When using a key without a passphrase, it works perfectly well.
- When using ssh-agent with a key that uses a passphrase, it also works 
well.
 >  Pushing to git.xxx.xxx:clemens/test_repo.git
 >  To git.xxx.xxx:clemens/test_repo.git
 >   = [up to date]      rev1 -> rev1
 >  updating local tracking ref 'refs/remotes/origin/rev1'
 >  Everything up-to-date
this bug must be in git gui, as it works perfectly fine via git bash.

"git push" spawns a new window, which asks for the passphrase. After entering the phrase git works as intended.

It seems to me that the git gui cant spawn that window where it asks for the key.

If that helps: I'm using Microsofts OpenSSH implementation:

 >  $ ssh -V
 >  OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Greetings, Clemens Haffner

Johannes Schindelin· Sep 29, 2024, 17:43 UTC · re: Clemens Haffner · lore

Re: Bug in git-gui

Hi Clemens,
On Sun, 29 Sep 2024, Clemens Haffner wrote:
Show 18 quoted lines
> Hi,
>
> I think I found a bug in git-gui on Windows (Windows 10 64 bit)
>
> git-gui Version 0.21.GITGUI
> git Version: 2.44.0.windows.1
>
> To reproduce: (I have not tested it with rsa keys)
>
> - Create an ed25519 key with a passphrase (--> .ssh/id_ed25519). Help->Show
> ssh key detects that key perfectly and shows the Public key to copy
> - Push something to a repository:
> --> it will fail.
>
> >  Pushing to xxx.xxx:clemens/test_repo.git
> >  CreateProcessW failed error:193
> >  ssh_askpass: posix_spawnp: Unknown error
> >  git@git.xxx.xxx: Permission denied (publickey).

This might be due to the `SSH_ASKPASS` environment variable pointing to a Unix-style path, but your SSH not being Unix-path-aware.

Can you verify that your `SSH_ASKPASS` environment variable is set to `/mingw64/bin/git-askpass.exe`? If so, can you set it to `/c/Program Files/Git/mingw64/bin/git-askpass.exe` instead and try again?

Ciao, Johannes

Show 36 quoted lines
> >  fatal: Could not read from remote repository.
> >
> >  Please make sure you have the correct access rights
> >  and the repository exists.
>
> - When using a key without a passphrase, it works perfectly well.
> - When using ssh-agent with a key that uses a passphrase, it also works well.
>
> >  Pushing to git.xxx.xxx:clemens/test_repo.git
> >  To git.xxx.xxx:clemens/test_repo.git
> >   = [up to date]      rev1 -> rev1
> >  updating local tracking ref 'refs/remotes/origin/rev1'
> >  Everything up-to-date
>
> this bug must be in git gui, as it works perfectly fine via git bash.
>
> "git push" spawns a new window, which asks for the passphrase. After entering
> the phrase git works as intended.
>
> It seems to me that the git gui cant spawn that window where it asks for the
> key.
>
> If that helps:
> I'm using Microsofts OpenSSH implementation:
>
> >  $ ssh -V
> >  OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
>
> Greetings,
> Clemens Haffner
>
>
>
>
>
>
Johannes Schindelin· Sep 29, 2024, 17:44 UTC · re: Johannes Schindelin · lore

Re: Bug in git-gui

Hi Clements,
On Sun, 29 Sep 2024, Johannes Schindelin wrote:
Show 25 quoted lines
> On Sun, 29 Sep 2024, Clemens Haffner wrote:
>
> > I think I found a bug in git-gui on Windows (Windows 10 64 bit)
> >
> > git-gui Version 0.21.GITGUI
> > git Version: 2.44.0.windows.1
> >
> > To reproduce: (I have not tested it with rsa keys)
> >
> > - Create an ed25519 key with a passphrase (--> .ssh/id_ed25519). Help->Show
> > ssh key detects that key perfectly and shows the Public key to copy
> > - Push something to a repository:
> > --> it will fail.
> >
> > >  Pushing to xxx.xxx:clemens/test_repo.git
> > >  CreateProcessW failed error:193
> > >  ssh_askpass: posix_spawnp: Unknown error
> > >  git@git.xxx.xxx: Permission denied (publickey).
>
> This might be due to the `SSH_ASKPASS` environment variable pointing to a
> Unix-style path, but your SSH not being Unix-path-aware.
>
> Can you verify that your `SSH_ASKPASS` environment variable is set to
> `/mingw64/bin/git-askpass.exe`? If so, can you set it to `/c/Program
> Files/Git/mingw64/bin/git-askpass.exe` instead and try again?

Oh, make that `c:/Program Files/Git/mingw64/bin/git-askpass.exe`, i.e. a Windows-style path but with forward slashes as directory separators.

Ciao, Johannes

Show 36 quoted lines
> > >  fatal: Could not read from remote repository.
> > >
> > >  Please make sure you have the correct access rights
> > >  and the repository exists.
> >
> > - When using a key without a passphrase, it works perfectly well.
> > - When using ssh-agent with a key that uses a passphrase, it also works well.
> >
> > >  Pushing to git.xxx.xxx:clemens/test_repo.git
> > >  To git.xxx.xxx:clemens/test_repo.git
> > >   = [up to date]      rev1 -> rev1
> > >  updating local tracking ref 'refs/remotes/origin/rev1'
> > >  Everything up-to-date
> >
> > this bug must be in git gui, as it works perfectly fine via git bash.
> >
> > "git push" spawns a new window, which asks for the passphrase. After entering
> > the phrase git works as intended.
> >
> > It seems to me that the git gui cant spawn that window where it asks for the
> > key.
> >
> > If that helps:
> > I'm using Microsofts OpenSSH implementation:
> >
> > >  $ ssh -V
> > >  OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
> >
> > Greetings,
> > Clemens Haffner
> >
> >
> >
> >
> >
> >
Clemens Haffner· Sep 29, 2024, 18:35 UTC · re: Johannes Schindelin · lore

Re: Bug in git-gui

Hi Johannes,
you were on the right track:
- if I set the env variable (as a normal Windows Enviroinment variable) to
c:/Program Files/Git/mingw64/bin/git-askpass.exe

the GUI does indeed (almost) work as intended. Almost, because while git-askpass is running, a console window is open in the background. ssh works though.

- however, with the variable set to this, git bash does not work anymore 
(waits infinitely on commands like "git push").
It doesnt even work when set to mingw-style
/c/Program Files/Git/mingw64/bin/git-askpass.exe
- If I start git-gui from within the mingw bash, it does even work 
without the variable set. (The console window still appears though).

So, to fix this git-gui needs to be aware of the enviroinment variable when launched through the start menu.

I'm not familiar with the source code, but I guess
git-gui/windows/git-gui.sh
would be the file that is responsible for that.
Greetings,
Clemens
Am 29.09.2024 um 19:44 schrieb Johannes Schindelin:
Show 67 quoted lines
> Hi Clements,
>
> On Sun, 29 Sep 2024, Johannes Schindelin wrote:
>
>> On Sun, 29 Sep 2024, Clemens Haffner wrote:
>>
>>> I think I found a bug in git-gui on Windows (Windows 10 64 bit)
>>>
>>> git-gui Version 0.21.GITGUI
>>> git Version: 2.44.0.windows.1
>>>
>>> To reproduce: (I have not tested it with rsa keys)
>>>
>>> - Create an ed25519 key with a passphrase (--> .ssh/id_ed25519). Help->Show
>>> ssh key detects that key perfectly and shows the Public key to copy
>>> - Push something to a repository:
>>> --> it will fail.
>>>
>>>>    Pushing to xxx.xxx:clemens/test_repo.git
>>>>    CreateProcessW failed error:193
>>>>    ssh_askpass: posix_spawnp: Unknown error
>>>>    git@git.xxx.xxx: Permission denied (publickey).
>> This might be due to the `SSH_ASKPASS` environment variable pointing to a
>> Unix-style path, but your SSH not being Unix-path-aware.
>>
>> Can you verify that your `SSH_ASKPASS` environment variable is set to
>> `/mingw64/bin/git-askpass.exe`? If so, can you set it to `/c/Program
>> Files/Git/mingw64/bin/git-askpass.exe` instead and try again?
> Oh, make that `c:/Program Files/Git/mingw64/bin/git-askpass.exe`, i.e. a
> Windows-style path but with forward slashes as directory separators.
>
> Ciao,
> Johannes
>
>>>>    fatal: Could not read from remote repository.
>>>>
>>>>    Please make sure you have the correct access rights
>>>>    and the repository exists.
>>> - When using a key without a passphrase, it works perfectly well.
>>> - When using ssh-agent with a key that uses a passphrase, it also works well.
>>>
>>>>    Pushing to git.xxx.xxx:clemens/test_repo.git
>>>>    To git.xxx.xxx:clemens/test_repo.git
>>>>     = [up to date]      rev1 -> rev1
>>>>    updating local tracking ref 'refs/remotes/origin/rev1'
>>>>    Everything up-to-date
>>> this bug must be in git gui, as it works perfectly fine via git bash.
>>>
>>> "git push" spawns a new window, which asks for the passphrase. After entering
>>> the phrase git works as intended.
>>>
>>> It seems to me that the git gui cant spawn that window where it asks for the
>>> key.
>>>
>>> If that helps:
>>> I'm using Microsofts OpenSSH implementation:
>>>
>>>>    $ ssh -V
>>>>    OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
>>> Greetings,
>>> Clemens Haffner
>>>
>>>
>>>
>>>
>>>
>>>

← back to recent threads