Using SourceTree For Windows With SSH Keys
Asked by Aahan Krish:

I'm using SourceTree, the stable release launched yesterday, on my Windows 7 laptop.

I generated the SSH keys using the **Putty Key Generator** in SourceTree, and saved them to my disk using the "*Save public key* " and "*Save private key*" options, as shown below:

![](../../upfiles/Clipboard01.gif)

Then I closed the window, and tried to import the private \*.ppk key from **Tools** \> **Launch SSH Agent (Pageant)** and selecting the private file. That's where the problem is. It doesn't accept the private key file:

![](../../upfiles/Clipboard02.gif)

That's the error I get. I am not sure why it's unable to open the private key file. Any idea as to what I could be doing wrong here?


Answers:
author: stevestreeting
body: **Edit:**Turns out the problem was saving the ppk in a path which had a space in it, and SourceTree wasn't coping with that properly when launching Pageant. This will be fixed in 0.9.0.2.

Old answer: That looks like entirely the correct process to me. I just repeated this process here and the .ppk I saved loaded back just fine. Are you sure you saved the \*private\* key as the .ppk? I usually call my public keys '.pub' to differentiate them from the .ppk files, the public keys are just plain text.

comments: author: Aahan Krish
body: Yes. The private file was saved with a .ppk extension. I don't think it'll work, but I'll reinstall sourcetree and see.


author: Aahan Krish
body: Okay, I've tried reinstalling SourceTree to no avail. But I've found a temporary fix, which I've added as an answer. Please take a look. Does that say something? I've no idea why this is happening, or how to fix it. Hope you can find something. Looks like I should stick to github for windows for now.


author: Aahan Krish
body: Steve, please edit your answer and add the comment to posted under my answer so that I can mark this as the answer. Thanks!


author: stevestreeting
body: Updated! :)


author: Alan So
body: I have tried to load the key from my previously generated ppk file under TortoiseGit's putty keygen. I notice that SourceTree's Pageant cannot locate the ppk file if it is saved to TortoiseGit's directory in C:\\"Program Files" or directly under C:\\. Well, the file is actually unable to be located using "Computer" or command line (run as myself or administrator). But it is ok if I save the key under my Documents directory.


author: stevestreeting
body: This might be because you need administrator permissions to do access these locations. SourceTree runs as your own user and not as administrator like TortoiseGit.


author: Aahan Krish
body: ***UPDATE:** Apparently it's a bug. See Steve Streeting's answer.*

I'd consider the error a bug, but what do I know. Anyway, I finally got it to work, and here are my findings.

**Undo what you did:**

* Go to SourceTree \> Tools \> Options \> General (Tab) \> SSH Key, clear the field, and hit 'OK'.

**The workaround:**

1. Go to SourceTree \> Tools \> Create or Import SSH Keys (that should open the 'Putty Key Generator' dialog), hit 'Generate' button to generate a new set of private and public SSH keys, and save them as shown in my question. Then close the 'Putty Key Generator' dialog box.
2. Go to SourceTree \> Tools \> Launch SSH Agent (Pageant) --- this is where the bug is --- when the 'Select an SSH key file to load (PuTTY format)' dialog box appears, DON'T select your .ppk file. Simply hit 'Cancel'.
3. No worries, as you'll notice that Pageant (PuTTY authentication agent) is still running in the system tray!  

   ![](../../upfiles/Clipboard03.gif)  
4. Right-click on Pageant icon (in the system tray) \> Add Key and select the private key file (.ppk) this time.
5. Now you can carry on with the rest of the process. But the problem is, you'll have to repeat this everytime you launch SourceTree. At least until Atlassian fixes what appears to be a bug to me.

comments: author: stevestreeting
body: I couldn't reproduce this at all, until I tried placing the ppk in a folder which had a space in it. This is the root of the problem, which will be fixed in the next update.


author: Vinayan Pushpa
body: I have been chasing to solve this similar issue with my source tree , I tried all these steps which were provided.. but no luck ![sad](/html/@C495B4504065515364EB1894F812B34C/images/emoticons/sad.png "sad")


author: Tom Miller
body: **This is still a bug in Version 1.8.2.11**


author: jheller57
body: After **MUCH** stuffing around, I finally got Sourcetree on Windows to work. I'm using version 1.8.3.0.

It would just hang when I put in an SSH URL while trying to verify if it was a git repo. The problem was that putty had not accepted the remote host key.

The fix: try logging into the remote host using putty itself. The log-in will probably fail (depending on how SSH is set up on the remote server), but you will get the opportunity to save the host key.

Thereafter SourceTree will actually work with the SSH URL.


author: Tim Brown
body: I'm using version 1.8.3.0  
Only way I was able to get around this:

* Quit Sourcetree
* Exit pageant from system tray
* Then restart pageant.
* Add Key to pageant
* Restart Sourcetree

Somehow sourcetree wasn't able to read the keys loaded in the agent.


author: Tom Miller
body: This bug seems to be 2 fold. One is the "space" in the directory structure. The second is it doesn't really "save" the decryption of the local key. I have to type it in every time I restart my computer and possibly SourceTree itself.


author: Gumml
body: It doesn't work at all on my machine. Got a fresh installation of SourceTree and I'm not able to clone a repository from Bitbucket at all. Don't even get an error message in the GUI. If I start the git bash (not by pressing Terminal as it doesn't work as long as you don't have a local repository, but from the containing folder) it's reporting an authentication error. Really need my SourceTree but can't fix it somehow


author: DT
body: Nice! This worked out for me! Thank you!


author: darrensapalo
body: This (set of instructions under the heading 'The workaround') worked for me too.


author: Edy B
body: Using version 2.6.9.0 and still having the same issue.


author: Roger Guess
body: Still a constant PITA and now I cannot get it working on any repository.


author: Josh Noe
body: I gave up. I just use the console to push. I guess it's time to switch to a different git app.


author: Gumml
body: unfortunately, there's no real alternative. GitKraken looks fine, but on my linux system it only works properly when I work alone in a repository. If other users commit, GitKraken is somehow not able to pull anymore because it displays a merge conflict which isn't existing. Then I have to use the console to do the pull (which works just fine) and then it's working again. The GitKraken devs take care of their programme just as Atlassian...


author: Josh Noe
body: [@Gumml](/t5/user/viewprofilepage/user-id/230705) SmartGit isn't too bad once you change it's quirky defaults and if you can tolerate light mode (it's dark mode is pretty bad). Agreed that GitKraken is pretty flaky, it also doesn't support stashing individual files.


author: nuru
body: 5 years have passed and this is still a problem, come on atlassian, could have written my own client in this time


author: Camilo Rojas D?az
body: For me "Launch SSH Agent" does nothing. I can import my converted SSH key in the "create or import SSH keys" but after closing the dialog it doesn't stay loaded.


author: H? Ng?c Th?i
body: 1. Launch SourceTree -\> Tools -\> Create or Import SSH Keys  
2. Launch SSH Agent (Pageant) and add the private file  
3. Go to bitbucket -\> choose your repository -\> Settings -\> Access keys -\> Add key  

comments: author: Markus Miller
body: It works in the standard version of source tree just fine. It's a problem of the enterprise version. You can choose between having a working SSH key connection or a different application path. Fucked up...


author: Josh Noe
body: Doesn't work if your ssh key is password protected.


Tags: bug

ssh

windows