web-dev-qa-db-ja.com

ディレクトリ「/home/username/.ssh」を作成できませんでした

Gitが突然動作しなくなりました。 (Windows 7でGit Bashを使用しています。Cygwinは使用していません。)

私がプルまたはプッシュしようとするたびに、それは言う:

ディレクトリ「/home/sigod/.ssh」を作成できませんでした

C:\Users\sigod\.sshHOMEにある私のSSHキーは/c/Users/sigodに設定されています。 various[〜#〜] so [〜#〜]questions に従って動作するはずです。

SSHキーをC:\Program Files\Git\home\sigod\.sshに配置すると、Gitが再び機能し始めます。しかし、どうすればそれを汚い解決策なしで機能させることができますか?

9
sigod

Git BashはMSYS2 CygWinに非常に似ている を使用して構築されています。以下はあなたのケースでうまくいくかもしれません、これらのステップに従ってください:

  1. 管理者としてcmd.exeを開き、[〜#〜] home [〜#〜]システム環境変数をユーザーディレクトリを指すように設定します。

    setx -m HOME ^%UserProfile^%
    

    上記のコマンドは、システム環境にHOME =%UserProfile%を設定します。

  2. Git bashを開き、/ etc/nsswitch.confファイルにコメント化されていないdb_home行エントリ。以下の構成のいずれかに一致していることを確認してください。

    オプションa:

    db_home: env windows cygwin desc
    

    オプションb:

    db_home: windows
    
  3. 手順2でオプションを試すときは、git-bashを完全に閉じます(バックグラウンドプロセスがgit-bashを有効に保ち、ウィンドウからログオフして再度ログインしないようにします)。

上記は、 同じ質問のCygWinバージョン を説明する回答に基づいています。

4
Miron V

GitBashは、従来のLinux権限を使用するCygwinに似ています。

次のコマンドをgit bashから実行して、sshディレクトリが正しい場所にあり、適切な権限があることを確認することをお勧めします。

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

次にstat ~/.sshを実行して、権限が正しく変更されたことを確認します

ls ~/.ssh

キーが正しい場所に正しくインストールされていることを確認します。

echo ~またはecho $HOMEを実行すると、実際にホームディレクトリとして登録されているディレクトリを確認できます。

~/.bashrcを変更してexport HOME=/some/directoryという行を追加することで、Linux HOMEを変更できます。

コマンドmountを入力すると、GitBashファイルシステムがWindowsファイルシステムにどのように対応しているかを確認できます。

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%環境変数を変更して、正しいパスにリダイレクトされるようにすることもできます。ただし、Windowsの環境変数は、~/.bashrcに追加したLinux変数によって上書きされます。

1
yosefrow

同じこと:WindowsのGit Bashバージョン2.17.1.2-64ビットで、ディレクトリ '/home/carlos.leao/.ssh'を作成できませんでした。 Windows 10を使用します。

Sigodの回避策で解決します。しかし、strutureフォルダーC:\ Program Files\Git\home\carlos.leaoを作成し、C:\ Users\carlos.leao.sshフォルダーをその中にコピーして、C:\ Users\carlosからシンボリックリンクを作成しました.leao.sshをC:\ Program Files\Git\home\carlos.leao.sshに移動します。これを行うには(carlos.leaoをWindowsユーザー名に置き換えます):

  1. このフォルダー構造C:\ Program Files\Git ** home\carlos.leao **を作成します
  2. cMD.exeを起動します
  3. コマンドを実行します:mklink/d "C:\ Users\carlos.leao.ssh" "C:\ Program Files\Git\home\carlos.leao.ssh"

魅力的な作品!