Git clone: Could not create Directory

I am trying to clone a repository, but I am getting an error

Could not create directory '/c/Windows/system32/config/systemprofile/.ssh'.
The authenticity of host '(host here)' can't be established.

I am running Windows 7 and using tortoiseGit.
I have generated a ssh key and added it to server.
Any suggestions what am I doing wrong?

  • Getting current Git commit version from within Rails app?
  • How to handle subprojects with autotools?
  • Hooks for git-svn
  • How does git decide which version of svn to use in git-svn?
  • Is Git's auto-detection scripted or is it within some Git executable?
  • Can't push to GitHub because of large file which I already deleted
  • Does Git have plan to change their hash function?
  • Github ERROR: Repository not found (yes, another one)
  • Git Directory Permissions Always 000
  • fatal: remote error: Could not find Repository octocat/myapp
  • How can I do case insensitive git diffing?
  • Git - push to a remote-tracking branch in the remote repository
  • 2 Solutions collect form web for “Git clone: Could not create Directory”

    Just ran into this issue and wanted to post the solution.

    When using a CYGWIN version of SSH you need to create an environment variable called HOME. If you create HOME as a System variable and set it to %USERPROFILE%, and cmd/bash gets launched as system (elevated), your %HOME% path will be C:\Windows\System32.

    An easy fix is to hardcode your userprofile path C:\Users\username to the HOME system variable, however if you have multiple users you will need to create environment variables accordingly.

    I was not implicitly launching cmd as SYSTEM however I was having this problem and not sure why. Safest option would be to only have a user environment variable called %USERPROFILE% and to not use an elevated command prompt.

    If you’re having this issue then run ECHO %HOME% and you’ll see what the variable is being read as (or if it exists).

    I was using SSH to clone a git repo with Windows; however in PowerShell.

    $configStoreGitDir = "$GitBaseDir\.git"
    if (!(Test-Path -Path $configStoreGitDir -PathType Container)) {
        Write-Verbose "Unable to locate local git folder at $GitBaseDir - recreating and cloning"
        New-Item -Type Directory $GitBaseDir
        git clone $GIT_REPO $GitBaseDir
    }
    

    When I was trying to clone a repo as a user I was getting the same .ssh directory error:

    Cloning into 'C:\Git\test-environments'...
    Could not create directory '/c/Windows/system32/.ssh'.
    

    Instead of hardcoding the path, I set the Powershell environment variable $env:USERPROFILE to use HOME just like @akevit mentioned in his answer.

    $env:HOME = $env:USERPROFILE
    $configStoreGitDir = "$GitBaseDir\.git"
    if (!(Test-Path -Path $configStoreGitDir -PathType Container)) {
        Write-Verbose "Unable to locate local git folder at $GitBaseDir - recreating and cloning"
        New-Item -Type Directory $GitBaseDir
        git clone $GIT_REPO $GitBaseDir
    }
    

    Now it works and uses the known_hosts and id_rsa private key in the users $env:USERPROFILE\.ssh\ directory.

    Cloning into 'C:\Git\test-environments'...
    remote: Counting objects: 460, done.
    remote: Compressing objects: 100% (457/457), done.
    

    This was with the latest Windows 64bit git install:

    git --version
    git version 2.6.3.windows.1
    
    Git Baby is a git and github fan, let's start git clone.