Git не может найти .ssh

Проблема с использованием msysgit в Windows; он не может найти .ssh/id_rsa, даже если он присутствует там, где он должен быть.

Я проверил, что проблема с ssh -v git @github.com; эта команда работает тогда и только тогда, когда я использую опцию -i, чтобы явно указать ее на правильный файл id_rsa, но насколько я могу судить, git сам не имеет такой опции; и я не могу найти ничего ни в Google, ни в прилагаемой документации.

Сложная вещь, она отлично работала в прошлый раз, когда я использовал git несколько месяцев назад, и с тех пор я ничего не менял, что кажется вероятной причиной.

Я пробовал следующее, все без эффекта:

  • Создание нового id_rsa

  • Ввод .ssh в текущий каталог

  • Вставка .ssh в корневой каталог

  • Удаление msysgit и переустановка последней версии

  • Настройка переменной среды HOME

  • Установка TortoiseGit и попытка этого (не работает вообще)

Любые идеи, что еще попробовать?

Ответ 1

Нашел его!

Проблема заключается в том, что существуют две команды git, git.exe(фактическая программа) и git.cmd(которая устанавливает необходимые для работы функции в Windows). В зависимости от того, какие параметры вы установили во время установки, вы можете получить сценарий, в котором первый, а не последний, тот, который заканчивается на вашем пути, поэтому он не работает. Тогда обычные отладочные предложения относительно ssh.exe не работают, если вы не запустили git.cmd.

Вкратце, убедитесь, что вы используете git.cmd вместо git.exe.

Ответ 2

Как ни странно msysgit имеет свой собственный .ssh каталог:

C:\Program Files (x86)\Git\.ssh

Размещение вашего ssh-ключа должно работать. Он решил проблему для меня

Ответ 3

У меня была эта проблема с git в Msys/MinGW, где он не смог найти мой закрытый ключ, несмотря на то, что он смог ssh на сервере отлично.

Проблема заключалась в том, что запись в ~/.ssh/config говорила:

Host github.com
IdentityFile /home/username/.ssh/id_rsa

Однако git потребовался полный путь из точки зрения Windows, как это:

Host github.com
IdentityFile c:/mingw/msys/1.0/home/username/.ssh/id_rsa

а затем он работал.

Чтобы открыть этот путь из msys, запустите cd ~/.ssh, а затем pwd -W

Ответ 5

Наши администраторы изменили HOMEDRIVE на Windows, а впоследствии такие инструменты, как ssh, больше не нашли свою конфигурацию. Кажется, что HOMEDRIVE используется как значение по умолчанию для HOME.