Почему я не могу установить Git для Windows с OpenSSH?

4615
Taylor Hx

Всякий раз, когда я пытаюсь установить Git для Windows, используя загруженный отсюда установщик, установка, по-видимому, пропускает этап, на котором я настраиваю свой клиент Secure Shell для Git.

Обычно во время установки отображается экран, предлагающий пользователю выбрать либо OpenSSH (установленный с Git), либо PuTTY PLink (опция по умолчанию). С моими последними несколькими установками этот экран нигде не найти. Вместо этого Git, кажется, молча настроен на использование PLink без какого-либо участия от меня.

Может кто-нибудь сказать мне, почему это происходит?

Если я не могу выбрать, какой SSH-клиент использовать при установке, может ли кто-нибудь сказать мне, как перенастроить Git так, чтобы он указывал на OpenSSH вместо TortoisePLink?

Кажется, это контролируется переменной среды Git (моя читается как «GIT_SSH = c: \ Program Files \ Putty \ plink.exe», а не «GIT_SSH = ssh.exe», как на другом компьютере с работающим Git).

Как обходной путь, кто-нибудь знает, как изменить эту переменную?

5

2 ответа на вопрос

3
Jose

I've run into this before. Much needs to be done to switch to OpenSSH.

  1. Edit C:\Program Files (x86)\Git\setup.ini and REMOVE the following lines (IF they are in the file):

    GIT_SSH=C:\Program Files (x86)\PuTTY\plink.exe SVN_SSH=C:\Program Files (x86)\PuTTY\plink.exe 
  2. Edit C:\Program Files (x86)\Git\etc\profile and REMOVE the line

    export PLINK_PROTOCOL=ssh 
  3. Make sure you have an SSH private key file. File is in OpenSSH format NOT in PuTTY private key format, .ppk.

  4. Create a .ssh directory for the Git user and copy the id_rsa file there.

    md c:\Users\Git_User\.ssh 
  5. Open a DOS command Window and type in the command

    set | more 

    Look for GIT_SSH and SVN_SSH

  6. If found, this indicates that it is configured in the Windows Environmental variables. You will need to remove it from there.

From the Start Menu, open the Control Panel

  • Select User Accounts
  • Select Change my environment variables
  • Highlight GIT_SSH ...
  • Click on Delete
  • Click on OK

Repeat this for SVN_SSH.

On my machine, doing these operations DISABLES TortoiseGit. It might be better to fix your Git config to use TortoiseGitPlink.exe. There is also a TortoisePlink.exe in the TortoiseGit/bin directory - don't use it. TortoisePlink.exe does NOT work for me.

+1. Спасибо за информацию. К сожалению, у меня больше нет компьютеров-нарушителей, я не могу это проверить, но попробую в следующий раз, когда столкнусь с проблемой. Taylor Hx 10 лет назад 0
0
Matt

Я только что натолкнулся на это сегодня вечером, и информация с последнего постера с тех пор устарела - но она привела меня в нужное место - по сути, скрывая любые понятия putty / plink в вашей системе от установщика git.

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

  • Удалите Git.
  • Сдуть оставшуюся структуру c: \ program files \ git.
  • Перейдите к разделу реестра USER, HKEY_CURRENT_USER \ Software \ SimonTatham
    • Временно переименуйте ключ в что-то вроде SSSSimonTatham (начните с символа 'S', чтобы он не сортировал вас, и вы сможете быстро найти его позже)
  • Теперь установите Git. (Он не заметит, что у вас установлен plink)
  • Обязательно добавьте ssh.exe (теперь установлен) в ваш путь
    • Для меня это был C: \ Program Files \ Git \ usr \ bin
  • Переименуйте ваш раздел реестра для шпатлевки обратно в SimonTatham