Here is a little bit background:
git did not exit cleanly (exit code 128)
I read this thread:
How to resolve "git did not exit cleanly (exit code 128)" error on TortoiseGit?
And actually changed SSH key by running Puttygen THREE TIMES already. I also set Full Permission for Users in the folder. Nothing works!!
Here is what I see in Environment Path
PATH=(others);C:\Users\myusername\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\libexec\git-core;
GIT_SSH=C:\Program Files\TortoiseGit\bin\TortoiseGitPLink.exe
SVN_SSH=C:\Program Files\TortoiseGit\bin\TortoiseGitPLink.exe
SSH_ASKPASS=C:\Program Files\TortoiseGit\bin\SshAskPass.exe
GIT_ASKPASS=C:\Program Files\TortoiseGit\bin\SshAskPass.exe
However: if I use Github for Windows
it works fine.
Can someone point me to a direction to troubleshoot this TortoiseGit issue?
Every time git.exe
is executed it returns an exit code (cf. Does git return specific return error codes?).
An exit code of
0
indicates success.
In the StackOverflow post the exit code 128 is mentioned, which indicates an error:
The
(exit code 128)
is some kind of "unexpected error" (cf. https://stackoverflow.com/a/8059956/3906760). What it means is highly dependant on the git command executed and the output it issued. Therefore, there can't be a single easy and short answer on how to solve this.
The following post contains a specific answer which is related to the push case and at the end a more generic answer (If this doesn't help section).
The following answer is based on the fact, that git.exe
was executed to run a push.
Here one needs to differentiate between OpenSSH and PuTTY. (See here)
In order to use OpenSSH you have to set ssh.exe
as "SSH client" on TortoiseGit settings -> Network.
OpenSSH uses %HOME%/.ssh/id_rsa(.pub)
files for their public/private keys by default, which must be created by OpenSSH ssh-keygen
and not PuTTYGen (PuTTY keys have a different format, however, can also be converted using PuTTYGen).
If %HOME%
is not set, TortoiseGit will set it automatically, if you manually set %HOME%
please make sure it is valid (you might have to use slashes instead of backslashes).
This is recommended for people who already have their OpenSSH keys.
PuTTY, which is to be preferred on Windows, requires that public/private keys are created using PuTTYGen (which is shipped with TortoiseGit).
TortoiseGitPlink.exe
needs to be selected as ssh client on TortoiseGit settings -> Network - that should be the default. However, there is no default place for the public/private keys and, thus, these have to be configured. There are (at least two ways to do that):
Configure your key to be the default key in PuTTY based applications. For this, open PuTTY (which is not shipped with TortoiseGit and has to be downloaded separately). Then go to the Connection-> SSH -> Auth configuration page and select your .ppk file as "Private key for authentication", go back to the "Session" configuration page, select "Default Settings" there and hit save. -> From now on PuTTY and PLink will use this key for authentication.
In order to make TortoiseGit load a private key for using with PuTTY one has to configure it.
More tips/tricks for using PuTTY.
First of all we need to make sure that the right git.exe
is called - normally that should be the case as TortoiseGit tries hard to find the correct git.exe
on the system on first start-up. This can be easily done by going to the TortoiseGit settings -> General. There one should check whether "git.exe
Path" points to the right folder of "Git for Windows" (in must point to the bin folder of the Git for Windows installation, not the cmd folder - but this should happen automatically) - if msysgit (the development version of "Git for Windows") is used, it is necessary that the [MSYSGIT-INSTALL-PATH]\mingw\bin-folder
is on the path (i.e. entered in the Extern DLL Path textbox) in order to execute git.exe
(otherwise required .dll-files) cannot be found. (See TortoiseGit docs)
Now click on "Check now" and check that the right version number appears next to the button (not no error message).
If this is working, git.exe
should be configured correctly and work with https.