我正在尝试克隆存储库,但我收到错误
Could not create directory '/c/Windows/system32/config/systemprofile/.ssh'.
The authenticity of host '(host here)' can't be established.
我正在运行Windows 7并使用tortoiseGit。 我已生成一个ssh密钥并将其添加到服务器。 有什么建议我做错了吗?
答案 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 变量