Настройка msysgit для использования putty / plink - PullRequest
5 голосов
/ 26 марта 2012

Заранее извиняюсь за основной вопрос - я новичок в git и уверен, что мне не хватает чего-то очень простого, что кто-то может ответить очень быстро.

Во время установки msysgit я указал, что я хотел бы использовать PLink вместо OpenSSH в качестве моей клиентской программы защищенной оболочки. Переменная среды 'GIT_SSH' установлена ​​в 'C: \ Program Files (x86) \ PuTTY \ plink.exe', что является правильным путем к plink. Я пробовал с и без кавычек. «echo $ GIT_SSH» из приглашения bash отображает правильное значение переменной среды. Я также могу без проблем подключиться к github через SSH, используя putty.

После запуска pagent и добавления моего личного ключа я открыл новое окно git bash и попытался подключиться к github (github уже имеет мой открытый ключ и правильно настроен - я использую проект jquery в качестве быстрого теста). Несмотря на то, что указано, что я хочу использовать PLink, и, очевидно, установлены правильные переменные среды, msysgit все еще пытается использовать файлы ключей, найденные в каталоге ~ / .ssh.

Я подтвердил это, фактически поместив свой закрытый ключ в этот каталог, и все работает отлично (я смог клонировать JQuery-репозиторий без проблем вообще), но я действительно хотел бы настроить это так, чтобы я если возможно, можете управлять моими личными ключами через putty.

Не совсем уверен, что мне не хватает .. Любая помощь очень ценится - заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 19 ноября 2013

У меня были похожие проблемы, и решение состоит в том, что вы должны использовать 'plink', а не 'ssh'.

Так что следующие команды (из приглашения bash) должны работать для вас (при условии, что вынастроить ключ GitHub SSH ):

$ echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe

$ "$GIT_SSH" -V
plink: Release 0.62

$ "$GIT_SSH" -ssh git@github.com
Using username "git".
Server refused to allocate pty
Hi [your-github-username]! You've successfully authenticated, but GitHub does not provide s
hell access.

Если вы просто запустите "$GIT_SSH", он выведет аргументы, которые вы можете использовать.Команда -ssh заставляет PuTTY использовать протокол ssh.

Если у вас есть C:\Program Files (x86)\PuTTY\ в ПУТИ, тогда вы просто сможете запустить plink -ssh user@host

Причинаэто то, что команда ssh использует OpenSSH, а OpenSSH не распознает ключи PuTTY.

plink.exe фактически упоминается в первом решении в ответе с наибольшим количеством голосов для вопросов конфигурации Git / PuTTY это просто трудно определить.

1 голос
/ 12 ноября 2015

Для меня решение состояло в том, что путь должен быть указан в стиле linux, например:

set GIT_SSH=/c/PuTTY/plink.exe

Это немного сбивало с толку, так как я устанавливаю переменную среды в синтаксисе Windows, но значение - это путь в стиле Linux.

Ключевой момент:

echo $GIT_SSH
C:\Program Files (x86)\PuTTY\plink.exe   <-- not a valid path in bash shell
...