I need help using SourceTree 3.0.5 and 3.0.6 with a simple SSH-based repository
Asked by gougmcgrath:

(Note that I was required to enter a tag to post a question, but there's no tag for SourceTree, so I picked them all.)

I'm unable to use SourceTree 3.0.5 and 3.0.6 to connect to existing repositories. We're using simple SSH-based repositories with usernames and passwords. The SourceTree Remote icon shows an explanation point warning that I need to set up extended integration. When I go to the Remote Details and edit the remote, I see an "Optional extended integration" section with a Host Type. There is no option for "SSH" there.

When I try to pull, I see:
> '"C:\\Users\\\<me\>\\AppData\\Local\\Sourcetree\\app-3.0.6\\tools\\Askpass.exe"' is not recognized as an internal or external command,  
> operable program or batch file.
>
> Error reading SSH_ASKPASS output for prompt: \<username\>@\<remote\>'s password:  
> fatal: Could not read from remote repository.
>
> Please make sure you have the correct access rights  
> and the repository exists.

It's disturbing that SourceTree is looking for an executable that doesn't exist. It's even more disturbing that SSH access is broken yet again.

Is there anything I can do to resolve this, or are we stuck with the 2.x version?

Thank you,

Doug


Answers:
author: IresStolte
body: I had the same error message with our local git server. Got it working by copying over some files from an older version of SourceTree (and this is not the first time I had to do this after an SourceTree update! Last time it was a borked Putty version in an update)

* Go to %APPDATA%\\Local\\SourceTree\\
* Navigate to the folder of the older version (app02.6.10 for me) and then the tools folder
* Copy Askpass.exe, Askpass.UI.Wpf.dll and SourceTreeShared.dll
* Navigate to the newest SourceTree folder (app-3.0.6 for me) and then the tools folder
* Paste the files

comments: author: gougmcgrath
body: You are fantastic! Thank you so much. It's working beautifully now.


author: Kenny Miyasato
body: Thanks!


author: Jan Bottorff
body: This workaround didn't work for me. I was trying to push changes to our internal ssh repository. The command line SourceTree tries to use is:

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks -c credential.helper= -c credential.helper="C:/Users/JBOTTO\~1/AppData/Local/ATLASS\~1/SOURCE\~1/GIT_EX\~1/GIT-CR\~1.EXE" push -v --tags origin devel/jbottorff/xxx/yyy/zzz ( a few details have been obscured with generic text).

The double "credential.helpers" seems a little suspicious.

This fails to authenticate, and does not prompt for the password. My password recently changed, so it needs to prompt. What's curious is if I take the exact command line it uses and paste it into the SourceTree supplied terminal window, it prompts for a password, and authentication then works and the push worked.

I then tried to create a new clone tree of the repository, using the same url of the current repository, like ssh://username@server.mydomain.com/repo/git/xxx/yyy.git

It does NOT prompt for a password, and get's an error like:

Output:  
Error: Access denied  
Access denied  
Access denied  
Access denied  
Access denied  
FATAL ERROR: Server sent disconnect message  
type 2 (protocol error):  
"Too many authentication failures for username"  
fatal: Could not read from remote repository.

This is the url I've been using for about 6 months, and it must have a cached password stored who knows where.

Anybody know how to clear a cached password? Perhaps that would get it to work again.

The only functioning workaround I have at the moment is to manually run the git commands from a terminal prompt.


author: Sean Aitken
body: This is a terrible solution. Requiring a download of an older version? Atlassian needs to fix this. This should not be an accepted answer. Opening the shell and issuing the desired git commands works fine for me. (For instance.... git pull)

Please fix this.


Tags: windows