Шаг 1: Генерация ключа SSH
1. В командной строке введите ssh-keygen. (Если в командной строке вы получите сообщение об ошибке, проверьте, является ли C:\Program Files\Git\usr\bin частью вашего пути) Команда предложит вам указать файл для сохранения ключа.
Нажмите Enter, чтобы принять ключ и путь по умолчанию, /c/Users//.ssh/id_rsa.
При появлении соответствующего запроса введите и повторите ввод парольной фразы.
Команда создает вашу идентификацию по умолчанию с ее открытым и закрытым ключами.
2.Настройка tortoise-git
Загрузите сгенерированный ранее ключ ssh (id_rsa). Вам будет предложено выбрать файл. (путь по умолчанию для ключей ssh C:\Users\.ssh)
При загрузке он запросит парольную фразу.. введите парольную фразу, которую вы дали ранее. После этого шага putty загрузит сертификат.
После загрузки сертификата нажмите кнопку «Сохранить закрытый ключ». Будет предложено выбрать папку, в которой будет сохранен файл. Лучше сохранить его в той же папке, что и папка ключа ssh (C:\Users\.ssh). Также укажите имя файла.
Теперь вам нужно настроить TortoiseGit с помощью сгенерированного файла ключа. Щелкните правой кнопкой мыши по папке репозитория и выберите TortoiseGit>Настройки.
На экране настроек выберите Git > Remote.
На удаленном экране выберите источник. URL-адрес и другие поля будут заполнены.
Нажмите на многоточие напротив поля Putty Key и выберите файл закрытого ключа, сгенерированный с помощью puttygen.
Формат файла закрытого ключа:
----НАЧАЛО ЧАСТНОГО КЛЮЧА RSA------
xxxxxxxyyxyyxyxyxy
----КОНЕЦ ЧАСТНОГО КЛЮЧА RSA-------
Ошибка была
Не удалось загрузить закрытый ключ (не удалось открыть файл)
Файл имеет разрешение на чтение и запись. Помимо этого, у закрытого ключа есть парольная фраза, я думаю, что это может быть причиной ошибки.
Конфигурация открытого ключа в моей учетной записи Bitbucket,
решение1
Если я правильно вас понял, вы не использовали , puttygen
чтобы создать пару ключей, вместо этого вы использовали , ssh-keygen
чтобы сгенерировать пару ключей с парольной фразой, затем вы загрузили этот закрытый ключ в Putty и сохранили его как Putty.ppk
и получили ошибку Couldn't load Private Key (cannot open file)
.
В каком формате был создан ваш закрытый ключ ( id_rsa
)?
Если открыть его в текстовом файле, то первый будет похож на этот:
-----BEGIN RSA PRIVATE KEY-----
или это выглядит так:
ssh-rsa AWEdxRASFLMAF......
Похоже, проблема в том, что вы загружаете открытый ключ вместо закрытого ключа для сохранения в виде .ppk
. На показанном вами снимке экрана есть 2 файла: id_rsa
и id_rsa
, но один из них — файл закрытого ключа, а другой — открытый ключ. Вероятно, вы выбрали открытый ключ, если не было показано никаких расширений файлов. Попробуйте повторно импортировать ключ, выбрав файл id_rsa
с меткой времени 05-03-2018 12:36
на снимке экрана выше.
Убедитесь, что первая строка в этом файле:
-----BEGIN RSA PRIVATE KEY-----
прежде чем вы это сделаете.
решение2
решение3
У меня было такое же сообщение, и для меня проблема была в том, что у меня было две версии putty. Я использую расширения git, которые можно установить, чтобы включить putty (это 32-битная версия putty, которая находится в каталоге программных файлов git extensions). Я также установил putty сам.
Я сгенерировал ключ с 64-битной установкой putty и пытался использовать этот ключ с 32-битной версией. Я исправил проблему, изменив путь к putty в параметрах расширений git.
изображение окна настроек расширений git для указания расположения putty
решение4
В одной из версий puttygen у меня было точно такое же сообщение об ошибке («неожиданный конец файла»). В последней (0.76) puttygen просто завис на неопределенное время, пытаясь импортировать мой ключ, и мне пришлось завершить процесс.
Поскольку я не смог найти ни одного ответа, который бы мне помог, а я разработчик на C++, я решил заняться отладкой puttygen, поскольку исходный код доступен (используется версия 0.76).
Проблема для меня была в том, что каким-то образомв конце моего закрытого ключа был лишний пробел, иputtygen не может с этим справиться!
Итак, вместо последней строки моего файла закрытого ключа, заканчивающейся на
" -----END RSA PRIVATE KEY-----
"
это закончилось тем, что
" -----END RSA PRIVATE KEY-----
"
Puttygen запрограммирован на продолжение сканирования файла в поисках дополнительной ключевой информации до тех пор, пока не найдет строку, которая начинается с « -----END
» и заканчивается на « PRIVATE KEY-----
», и он вообще не обрабатывает EOF (конец файла) должным образом!
Надеюсь, это кому-нибудь поможет, меня эта проблема свела с ума!