Git clone:无法创建目录

问题描述 投票:6回答:3

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

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

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

windows git tortoisegit
3个回答
10
投票

刚遇到这个问题,想发布解决方案。

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

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

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

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


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
}

当我试图克隆一个repo作为用户时,我得到了相同的.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安装:

git --version
git version 2.6.3.windows.1

0
投票

只需在用户变量下添加带有C:\ Users \ username值的HOME变量

Click here to see sample image

© www.soinside.com 2019 - 2024. All rights reserved.