2016-03-15 48 views
5

的Git突然停止爲我工作。 (我用在Windows 7的Git的Bash) 每次我嘗試拉或推說:位於C:\Users\sigod\.sshHOME設置爲/c/Users/sigod無法創建目錄「/home/username/.ssh」

Could not create directory '/home/sigod/.ssh'

我的SSH密鑰。根據variousSOquestions應該工作。

如果我把SSH密鑰到C:\Program Files\Git\home\sigod\.ssh然後Git的重新開始工作。但是我怎樣才能讓它在沒有骯髒解決方案的情況下工

+0

你使用Cygwin? – mauro

+0

@mauro,不,我不知道。 – sigod

+0

作爲臨時解決方案,我爲'c:\ Program Files \ Git \ home \ <<===>> c:\ Users'創建了符號鏈接。 – sigod

回答

1

GitBash是基於其使用傳統的Linux權限Cygwin的發動機(具體MINGW64)。

我建議你要確保在正確的位置你的ssh目錄存在並且由混帳bash中運行以下命令具有正確的權限:

mkdir ~/.ssh 
chown $USER:$USER -R ~/.ssh 

然後運行stat ~/.ssh看到權限正確

改變
ls ~/.ssh 

看到你的關鍵是正確地安裝在正確的位置。

您可以通過運行echo ~echo $HOME來查看哪個目錄實際註冊爲您的主目錄。

您可以通過修改~/.bashrc並添加行更改Linux主export HOME=/some/directory

您可以看到您的GitBash文件系統通過輸入命令mount

MINGW64 /c $ mount 
C:/Program Files/Git on/type ntfs (binary,noacl,auto) 
C:/Program Files/Git/usr/bin on /bin type ntfs (binary,noacl,auto) 
C:/Users/MyUser/AppData/Local/Temp on /tmp type ntfs (binary,noacl,posix=0,usertemp) 
C: on /c type ntfs (binary,noacl,posix=0,user,noumount,auto) 
D: on /d type ntfs (binary,noacl,posix=0,user,noumount,auto) 

如果對應於您的Windows文件系統沒有其他的工作,你也可以嘗試修改窗口中的%HOME%環境變量,以確保它指向正確的路徑。但是,任何窗口的環境變量將被Linux覆蓋乏添加到您~/.bashrc

+0

謝謝你的詳細回覆。不幸的是,我無法測試它,因爲問題隨着符號鏈接消失。 – sigod

+0

在我的情況下,所有者是正確的,但有一個權限問題。一個全面的'chmod -R 777 .ssh'修復了這個問題(以及後續的寫入known_hosts文件的問題) - 但是當然強烈建議爲任何做這件事的人備份現有的'.ssh'文件夾。 –

+1

@SteveChambers嗨,感謝這個問題引起了我的注意。我強烈建議*針對* chmod -R 777 .ssh,因爲這可以讓任何訪客或訪客訪問您的計算機來查看您的私人ssh密鑰。 相反,我會簡單地將-R添加到我的命令中以使其遞歸。我已更新我的答案以反映這一點。 關於你的.ssh文件夾的權限,我建議運行'CHOWN $ USER:$ USER -R〜/ .ssh'使自己的擁有者,並與固定的權限: 運行'chmod 644 -R〜/。ssh' 'chmod 700〜/ .ssh' 'chmod 600〜/ .ssh/id_rsa' – yosefrow