2013-07-01 23 views
5

Próbuję sklonować repozytorium, ale otrzymuję błądgit clone: ​​Nie można utworzyć katalogu

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

używam Windows 7 i korzystania tortoiseGit. Wygenerowałem klucz ssh i dodałem go do serwera. Jakieś sugestie co robię źle?

+0

Używasz git jako 'użytkownik Systemem. Czemu? – Chronial

+0

spróbuj uruchomić bash z podniesionymi wyjątkami raz i sklonuj stamtąd. Ta zachęta prawdopodobnie jest częścią, gdy ssh prosi o wpisanie "tak" w celu dodania odcisku palca hosta –

Odpowiedz

6

Właśnie wpadł na ten problem i chciałem opublikować rozwiązanie.

Podczas korzystania z wersji SSH CYGWIN należy utworzyć zmienną środowiskową o nazwie HOME. Jeśli utworzysz HOME jako zmienną systemową i ustawisz na %USERPROFILE%, a cmd/bash zostanie uruchomiony jako system (podniesiony), twoja %HOME% ścieżka będzie C:\Windows\System32.

Łatwe jest zaszyfrowanie ścieżki profilu użytkownika C:\Users\username do zmiennej systemowej HOME, jednak w przypadku wielu użytkowników należy odpowiednio utworzyć zmienne środowiskowe.

Nie byłem domyślnie uruchamiającym cmd jako SYSTEM, jednak miałem ten problem i nie wiem dlaczego. Najbezpieczniejszą opcją byłoby mieć tylko zmienną środowiskową użytkownika o nazwie %USERPROFILE% i nie używać podniesionego wiersza polecenia.

Jeśli masz ten problem, uruchom ECHO %HOME%, a zobaczysz, co zmienna jest czytana jako (lub jeśli istnieje).

1

Użyłem SSH do sklonowania repozytorium git w systemie Windows; jednak w 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 
} 

Kiedy starałem się sklonować repo jako użytkownik był otrzymuję ten sam błąd .ssh katalogu:

Cloning into 'C:\Git\test-environments'... 
Could not create directory '/c/Windows/system32/.ssh'. 

Zamiast hardcoding ścieżkę, ustawić zmienną środowiskową PowerShell $env:USERPROFILE używać HOME tak jak wspomniany w jego odpowiedzi @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 
} 

Teraz to działa i używa klucza prywatnego w katalogu użytkowników $env:USERPROFILE\.ssh\known_hosts i id_rsa.

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

To było z najnowszym 64-bitowym systemie Windows zainstalować git:

git --version 
git version 2.6.3.windows.1