Правильно установите SSH дома в GitPortable

Я бы очень хотел взять с собой установку Git, куда бы я ни пошел, поэтому я установил GitPortable через PortableApps. К сожалению, утилиты OpenSSH, доступные в git-bash, настаивают на размещении/поиске папки .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 [email protected]
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)?

Я не понимаю, что делать, чтобы OpenSSH в установке GitPortable понимал, где находится мой домашний каталог. Есть ли у вас какие-либо идеи, кроме как сдаться и просто установить Git для Windows?

РЕДАКТИРОВАТЬ:

Версия OpenSSH:

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

Команда использует правильное расположение папки .ssh в командной строке Windows при использовании git-cmd.bat:

C:\Users\snb>ssh -T [email protected]
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, так что это будет версия OpenSSH, распространяемая с GitPortable.

Этот GitPortable основан на msysgit PortableGit-1.9.5-preview20141217 фиксации github


person Søren Boisen    schedule 04.02.2015    source источник
comment
Будет ли это работать в сеансе git-cmd.bat? (в отличие от git bash). Что возвращает which ssh? Это ssh, упакованный в msysgit? Каково значение переменной окружения GIT_SSH? (как в stackoverflow.com/a/5315762/6309). Какую версию msysgit/Git для Windows вы используете?   -  person VonC    schedule 05.02.2015
comment
@VonC Я добавил дополнительную информацию, которая отвечает на большинство ваших вопросов, к исходному вопросу. GIT_SSH не установлен. Кроме того, спасибо, что нашли время, чтобы попросить разъяснений :-)   -  person Søren Boisen    schedule 05.02.2015
comment
Будет ли это работать лучше, если вы установите HOME в /c/Users/snb? (export HOME=/c/Users/snb)   -  person VonC    schedule 05.02.2015
comment
Спасибо, это сработало! Я думал, что уже пробовал это. Если вы отправите это как ответ, я отмечу это как решение моей проблемы :-)   -  person Søren Boisen    schedule 05.02.2015
comment
Странно, что это сработает, учитывая, что вся информация, которую я нашел, предполагает, что люди обычно используют здесь путь к формату Windows.   -  person Søren Boisen    schedule 05.02.2015
comment
Истинный. Я в поезде. Я проверю это, когда буду дома.   -  person VonC    schedule 05.02.2015
comment
Я отредактировал ответ, чтобы добавить другую информацию о пути, используемом оболочкой Git bash.   -  person VonC    schedule 06.02.2015


Ответы (1)


Правильный путь для HOME в сеансе bash должен быть установлен с помощью:

 export HOME=/c/Users/snb

Это сделало бы его совместимым с ssh в оболочке unix.
Использование путь posix кажется более безопасным, учитывая, что Git работает поверх среды выполнения posix.

person VonC    schedule 05.02.2015