2012-03-26 1 views
5

Извините заранее за основной вопрос - я новичок в git и уверен, что мне не хватает чего-то супер простого, что кто-то может ответить очень быстро.Настройка msysgit для использования putty/plink

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

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

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

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

ответ

6

У меня были подобные проблемы, и решение заключается в том, что вам нужно использовать «plink», а не «ssh».

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

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

$ "$GIT_SSH" -V 
plink: Release 0.62 

$ "$GIT_SSH" -ssh [email protected] 
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\ в PATH, то вы должны просто быть в состоянии запустить plink -ssh [email protected]

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

plink.exe Фактически упоминается в первом решении в most up voted answer for Git/PuTTY configuration questions, его просто трудно определить.

1

Для меня решение было то, что путь должен был быть указан в стиле 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