Git克隆:无法创build目录

我试图克隆一个存储库,但我得到一个错误

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

我正在运行Windows 7并使用tortoiseGit。 我已经生成一个SSH密钥,并将其添加到服务器。 任何build议我做错了什么?

刚刚遇到这个问题,并希望张贴解决方案。

使用CYGWIN版本的SSH时,您需要创建一个名为HOME的环境变量。 如果您创建HOME作为系统变量并将其设置为%USERPROFILE% ,并且cmd / bash以系统(提升)启动,则您的%HOME%路径将为C:\Windows\System32

一个简单的解决方法是将C:\Users\username路径C:\Users\username硬编码到HOME系统变量,但是如果您有多个用户,则需要相应地创建环境变量。

我没有隐式启动cmd作为系统,但我有这个问题,不知道为什么。 最安全的选项是只有一个名为%USERPROFILE%的用户环境变量,而不使用提升的命令提示符。

如果你遇到这个问题,那么运行ECHO %HOME% ,你会看到变量正在被读取(或者是否存在)。

我正在使用SSH克隆与Windows的git回购; 但在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 } 

当我试图克隆一个回购作为用户时,我得到了相同的.ssh目录错误:

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

而不是硬编码路径,我设置Powershell环境变量$env:USERPROFILE使用HOME ,就像在他的答案中提到的@akevit。

 $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 } 

现在它工作并使用用户$env:USERPROFILE\.ssh\目录中的known_hostsid_rsa私钥。

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

这是最新的Windows 64位git安装:

 git --version git version 2.6.3.windows.1