Git clone:无法创建目录

时间:2013-07-01 09:23:17

标签: windows git tortoisegit

我正在尝试克隆存储库,但我收到错误

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

我正在运行Windows 7并使用tortoiseGit。 我已生成一个ssh密钥并将其添加到服务器。 有什么建议我做错了吗?

3 个答案:

答案 0 :(得分:8)

刚遇到此问题并希望发布解决方案。

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

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

我没有隐式地将cmd作为SYSTEM启动但是我遇到了这个问题并且不确定原因。最安全的选择是只有一个名为%USERPROFILE%的用户环境变量,并且不使用提升的命令提示符。

如果您遇到此问题,请运行ECHO %HOME%,您将看到该变量被读取的内容(或是否存在)。

答案 1 :(得分:2)

我使用SSH来克隆Windows的git repo;但是在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
}

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

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

这是最新的Windows 64bit git install:

git --version
git version 2.6.3.windows.1

答案 2 :(得分:0)

只需在用户变量

下添加具有 C:\ Users \ username 值的 HOME 变量

Click here to see sample image