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

Всякий раз, когда я пытаюсь установить 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).

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

2 ответа

Я сталкивался с этим раньше. Многое нужно сделать, чтобы перейти на OpenSSH.

  1. редактировать C:\Program Files (x86)\Git\setup.ini и УДАЛИТЕ следующие строки (ЕСЛИ они есть в файле):

    GIT_SSH=C:\Program Files (x86)\PuTTY\plink.exe
    SVN_SSH=C:\Program Files (x86)\PuTTY\plink.exe
    
  2. редактировать C:\Program Files (x86)\Git\etc\profile и УДАЛИТЬ линию

    export PLINK_PROTOCOL=ssh
    
  3. Убедитесь, что у вас есть файл закрытого ключа SSH. Файл в формате OpenSSH НЕ в формате закрытого ключа PuTTY, .ppk,

  4. Создать .ssh каталог для пользователя Git и скопируйте id_rsa файл там.

    md c:\Users\Git_User\.ssh
    
  5. Откройте окно командной строки DOS и введите команду

    set | more
    

    Ищу GIT_SSH а также SVN_SSH

  6. Если он найден, это означает, что он настроен в переменных среды Windows. Вам нужно будет удалить его оттуда.

В меню "Пуск" откройте панель управления

  • Выберите учетные записи пользователей
  • Выберите Изменить мои переменные среды
  • Выделите GIT_SSH ...
  • Нажмите на Удалить
  • Нажмите на ОК

Повторите это для SVN_SSH.

На моей машине эти операции ОТКЛЮЧАЮТ TortoiseGit. Может быть лучше исправить ваш Git конфиг, чтобы использовать TortoiseGitPlink.exe, Также есть TortoisePlink.exe в TortoiseGit/bin каталог - не используйте его. TortoisePlink.exe не работает для меня.

Я только что натолкнулся на это сегодня вечером, и информация с последнего постера с тех пор устарела - но она привела меня в нужное место - по сути, скрывая любые понятия 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
Другие вопросы по тегам