我试图克隆一个存储库,但我得到一个错误
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_hosts
和id_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