Permission Denied Sourcetree

If you want to access GitLab via SourceTree, you can connect it with an account profile now. Another method is to connect GitLab by using the clone function with SSH key.

What Will We Learn (Method 1)

Git Operations Fail - Permission denied - publickey 500 errors when opening a file or the commit list when mailmap is used. Repository is not updated by pushing content immediately after its creation. If you get an error message with Permission denied (publickey), check the Troubleshoot SSH issues page for help. Now that you've got an SSH key set up, use the SSH URL the next time you clone a repository. If you already have a repository that you cloned over HTTPS, change the remote URL for your repository to its SSH URL. Edit an SSH key.

  • Access GitLab with personal access token

What Will We Learn (Method 2)

  • Create SSH key
  • Access GitLab via SourceTree with SSH key

Method 1: Connect with Remote (Account Profile)

Since SourceTree 3.0, it adds support for additional remote hosting services. They are GitHub Enterprise, Microsoft Visual Studio Team Services, and GitLab (Cloud, CE, EE).

Create Personal Access Token

To connect GitLab with Remote, personal access token is required for authentication. To create personal access token, login GitLab and go to Settings.

After that, select Access Tokens from the sidebar. You will create your personal access token here. Give access token a name. You are able to set an expiry date for your access token. By leaving it blank, access token will never expire. Next check the api and read_user checkbox, it is required for SourceTree to connect to GitLab remotely. Click on Create personal access token to complete the setup.

Next open up your SourceTree, click on Remote and click on Add an account.

Select GitLab as the hosting services, and choose HTTPS as the Preferred Protocol. Click on Refresh Personal Access Token.

You will be prompted to enter the username and password. After entering the username and password then press OK to continue.

Do take note that email address you used to login GitLab is not your username. If you do not know your username. Go to GitLab and click on the top right profile icon. The text after @ is your username. In this example, it would be aword-test.

Furthermore, the password is your personal access token code. It only shows you once you created your personal access token. Make sure save your personal access token code in a safe place.

Then you have completed the steps to connect GitLab with SourceTree. If you connect successfully, you will able to see your repositories in SourceTree.

Method 2: Connect with SSH Key

Sourcetree

This method is useful for users who are not using SourceTree 3.0 and above.

What is SSH Key

The Secure Shell (SSH) key is based on the principle of Public-key cryptography. It is used as a way of authentication. By generating an SSH key pair, you will get a private key and a public key. You can image public key as a padlock. You can distribute it to any systems on the Internet. Private key is like a key of the padlock. You should keep the private key securely and avoid it from being compromised. To access any system with public key, you need to use the private key to authenticate yourself.

Create SSH Key

To create SSH key, you need to generate your own SSH key with SourceTree. Go to Tools and select Create or Import SSH Keys.

Click on Generate to create SSH Key. Move your mouse cursor within the PuTTY Key Generator continuing to generate the SSH Key.

After SSH Key is generated, type your own Key passphrase for your SSH Key. Key passphrase is like a password to protect your SSH private key. Save your public key and private key for future use.

Sourcetree Permission Denied Publickey

Add SSH Public Key to GitLab

To add your SSH Key to GitLab, you need to log into you GitLab account. Click on your profile icon on the top right corner, then select Settings. Click on SSH Keys on the side menu.

Copy your public key inside your PuTTY Key Generator, then paste it into GitLab. Click on Add Key to add your SSH Key into the GitLab.

Add SSH Private Key to SourceTree

To add private key to SourceTree, Click on Tools then click Launch SSH Agent…

You will find SSH Agent named as Pageant on the taskbar. Double click on Pageant.

Now click on Add Key. Add your private key which have been saved earlier.

Clone Repository to Access GitLab via SourceTree

Go into your projects in your GitLab. Copy the SSH URL.

In SourceTree, click on Clone. Paste the repository URL into Source Path. Click on Clone, you have successfully connected GitLab with SourceTree. Now you are able to pull and push your code to GitLab with SourceTree.

When you try to clone private repositories for the first time from an account, you may get following error.

This article helps you on fixing this issue. The root cause here is that the remote repository don’t trust you. In order to gain access to the repo, you have to create an SSH key and register that key in your git repository.

Steps to add SSH key in Gitlab

Sourcetree Permission Denied

    1. Run CMD/Powershell/Terminal with administrative (sudo) privilege. (In windows run cmd as administrator. In linux execute ‘sudo su’ to get root privilege).
    2. Type ssh-keygen.
      You will see the following. Here you will be asked for the location where the SSH key will be saved. Press enter to accept default or enter your custom location.
    3. Git will ask you to save the key to the specific directory.You will be asked for a password. Make sure you remember it since it will be needed for cloning.
    4. The public key will be created to the specific directory.
    5. Now go to the directory you have specified in Step 2 and open .ssh folder.
    6. You’ll see a file id_rsa.pub. Open it on notepad. Copy all text from it.
    7. Go to https://gitlab.com/profile/keys
      Here you can see all the SSH keys specified so far. Paste the copied key.
    8. Now click on the “Title” below. It will automatically get filled based on the value taken from the SHA Key.
    9. Then click “Add key” and that’s it. You have successfully configured SSH.
    10. Now try cloning again. Git will ask for a password. Give the password you have given in Step 2.

Sourcetree Permission Denied To Update Branch

And that’s all. Now you will be able to access the repo without any issues.