2013-07-01 29 views
5

Tôi cố gắng để sao chép một kho lưu trữ, nhưng tôi nhận được một lỗiGit bản sao: Không thể tạo thư mục

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

Tôi đang chạy Windows 7 và sử dụng TortoiseGit. Tôi đã tạo khóa ssh và thêm nó vào máy chủ. Bất kỳ đề xuất nào tôi đang làm sai?

+0

Bạn đang chạy git như là người dùng SYSTEM' '. Tại sao? – Chronial

+0

cố gắng chạy có bash với privs cao một lần và nhân bản từ đó. Lời nhắc này có thể là một phần khi ssh yêu cầu nhập yes để thêm vân tay máy chủ lưu trữ –

Trả lời

6

Chỉ cần gặp sự cố này và muốn đăng giải pháp.

Khi sử dụng phiên bản SSH CYGWIN, bạn cần phải tạo biến môi trường có tên là HOME. Nếu bạn tạo HOME làm Biến hệ thống và đặt thành %USERPROFILE% và cmd/bash được khởi chạy làm hệ thống (cao), đường dẫn %HOME% của bạn sẽ là C:\Windows\System32.

Sửa lỗi dễ dàng là mã hóa đường dẫn người dùng của bạn C:\Users\username vào biến hệ thống HOME, tuy nhiên nếu bạn có nhiều người dùng, bạn sẽ cần phải tạo biến môi trường tương ứng.

Tôi đã không ngầm khởi chạy cmd như SYSTEM tuy nhiên tôi đã gặp sự cố này và không chắc chắn lý do. Tùy chọn an toàn nhất là chỉ có biến môi trường người dùng được gọi là %USERPROFILE% và không sử dụng dấu nhắc lệnh nâng lên.

Nếu bạn gặp sự cố này, hãy chạy ECHO %HOME% và bạn sẽ thấy biến được đọc là (hoặc nếu biến đó tồn tại).

1

Tôi đã sử dụng SSH để sao chép một repo git bằng Windows; tuy nhiên trong 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 
} 

Khi tôi đang cố gắng để sao chép một repo như một người sử dụng tôi đã nhận được cùng một lỗi .ssh thư mục:

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

Thay vì thể xác định rõ con đường, tôi đặt biến môi trường Powershell $env:USERPROFILE sử dụng HOME giống như @akevit được đề cập trong câu trả lời của anh ấy.

$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 
} 

Bây giờ nó hoạt động và sử dụng known_hostsid_rsa khóa bí mật ở những người sử dụng $env:USERPROFILE\.ssh\ thư mục.

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

Đây là với 64bit git mới nhất của Windows cài đặt:

git --version 
git version 2.6.3.windows.1 
Các vấn đề liên quan