10

我正在尝试克隆存储库,但出现错误

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

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

4

3 回答 3

16

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

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

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

我并没有将 cmd 作为 SYSTEM 隐式启动,但是我遇到了这个问题,不知道为什么。最安全的选择是只调用一个用户环境变量%USERPROFILE%而不使用提升的命令提示符。

如果您遇到此问题,然后运行ECHO %HOME%,您将看到变量被读取为什么(或者它是否存在)。

于 2015-01-05T07:30:46.477 回答
3

我正在使用 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 环境变量设置为就像@akevit 在他的回答中提到的那样$env:USERPROFILE使用。HOME

$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_hostsid_rsa私钥。$env:USERPROFILE\.ssh\

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
于 2015-11-27T02:17:11.567 回答
1

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

单击此处查看示例图像

于 2019-03-13T00:38:02.830 回答