Вот пошаговое руководство, которое я использовал, чтобы заставить это работать.
Платформа: Windows 7
Установить msysgit из http://msysgit.github.io/
Во время установки примите все параметры по умолчанию, кроме случаев, когда появляется опция «Выбор компонентов». Когда это появится, выберите «Git Bash Here». Хотя в этом нет необходимости, при работе в Windows Explorer добавлено хорошее контекстное меню, которое мне показалось очень полезным.
После установки msysgit также будет установлен Git Bash. Откройте Git Bash одним из двух способов:
- Нажмите кнопку Пуск в Windows и начните вводить Git Bash
- Или щелкните правой кнопкой мыши где-нибудь (например, на рабочем столе) и выберите Git Bash Here. Эта опция доступна, только если установлено контекстное меню «Git Bash Here».
В командном окне Git Bash введите это:
$ ssh-keygen -t rsa
Когда вас попросят ввести имя файла, просто примите значение по умолчанию. При появлении запроса выберите надежную фразу-пароль, и теперь ваш открытый ключ должен быть сохранен. Ваш экран должен выглядеть так:
Откройте файл открытого ключа в Блокноте. Файл должен находиться здесь:
C:\Users\{username}\.ssh\id_rsa.pub
Скопируйте все содержимое файла в буфер обмена, а затем перейдите на страницу настроек SSH в GitHub:
https://github.com/settings/ssh
Выберите «Добавить ключ SSH», введите полезный «Заголовок» и вставьте содержимое в текстовое поле «Ключ».
Чтобы упростить свою жизнь, вы можете использовать агент SSH, чтобы сохранить вашу фразу-пароль, чтобы вам не нужно было ее запоминать. Для этого введите это в Git Bash:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
Вам будет предложено ввести ваш пароль. Если все получится, ваша личность будет добавлена. Примечание: эта фраза будет забыта, как только вы закроете свою оболочку. Я не уверен, как сделать так, чтобы это сохранялось между сеансами, но, возможно, кто-то может помочь?
Чтобы проверить, что все работает, введите это в Git Bash:
$ ssh -T git@github.com
Вы должны увидеть сообщение об успехе.
Источники:
https://help.github.com/articles/generating-ssh-keys/
https://help.github.com/articles/working-with-ssh-key-passphrases/
explanation on why eval `ssh-agent -s` should be used instead of just ssh-agent -s
https://stackoverflow.com/a/17848593/188740