在 GitPortable 中正确设置 SSH home

Properly set SSH home in GitPortable

我非常想随身携带 Git 安装,所以我通过 PortableApps 安装了 GitPortable。 不幸的是,git-bash 中可用的 OpenSSH 实用程序坚持 placing/searching 将 .ssh 文件夹放在无意义的地方 (C/.ssh)。

现在,我看到其他人也有同样的问题,但解决方案通常是将 HOME 设置为 Windows 环境变量。但这对我不起作用。

来自通常的 Windows 命令提示符:

C:\Users\snb>echo %HOME%
C:\Users\snb

显示环境变量显然设置正确。 来自 git-bash:

snb@SNB-WORKSTATION /c/Users/snb
$ echo $HOME
C:\Users\snb

表明git-bash同意。但是,如果我测试 SSH 命令,OpenSSH 对 .ssh 文件夹的位置有完全错误的想法:

snb@SNB-WORKSTATION /c/Users/snb
$ ssh -T git@bitbucket.org
Could not create directory 'C/.ssh'.
The authenticity of host 'bitbucket.org (131.103.20.167)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

我不知道如何才能使 Git便携式安装中的 OpenSSH 了解我的主目录在哪里。除了让步并为 Windows 安装 Git 之外,您还有其他想法吗?

编辑:

OpenSSH 版本为:

$ ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1i 6 Aug 2014

当使用 git-cmd.bat:

时,命令在 Windows 命令提示符中使用正确的 .ssh 文件夹位置
C:\Users\snb>ssh -T git@bitbucket.org
The authenticity of host 'bitbucket.org (131.103.20.168)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,131.103.20.168' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/snb/.ssh/id_rsa':

但我真的很讨厌 cmd.exe,我需要这个来为 git-bash 工作! :)

SSH命令git-bash使用的是:

$ which ssh
/bin/ssh

/bin 文件夹位于 GitPortable 安装中,因此这将是与 GitPortable 一起分发的 OpenSSH 版本。

本Git便携版基于msysgit便携版Git-1.9.5-preview20141217github commit

bash 会话中 HOME 的正确路径应设置为:

 export HOME=/c/Users/snb

这将使它与 unix 中的 ssh 兼容 shell。
使用 posix path seems safer considering Git is running on top of a posix run-time environment.