Создаем ssh-ключи для GitHub и BitBucket

4730

December 10, 2017

Из Википедии: SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол. Таким образом, можно не только удалённо работать на компьютере через командную оболочку, но и передавать по шифрованному каналу звуковой поток или видео (например, с веб-камеры).

Доступ к репозиториям GitHub и BitBucket может осуществляться посредством https или SSH. Если выбрать вариант https, то при каждом обращении к репозиторию на сервере необходимо будет вводить логин и пароль.

Чтобы этого не делать, особенно если разработка идет в IDE, можно настроить доступ по SSH.

Для этого потребуется сгенерировать пару ключей доступа: приватный и публичный. Приватный остается у вас "под замком" - т.е. в строжайшей секретности, а публичный ключ необходимо добавить в свой аккаунт на GitHub и BitBucket.

Итак, давайте разберем процесс создания пары ключей в ОС Windows.

1. Утилиты для работы

Для генерации ключей потребуется скачать утилиту PuTTY с их официального сайта. Можно скачать как portable версию (странно, я ее видел раньше, сейчас - нет), так и установщик под 32битную (неужели, такие еще ставят) и 64битную системы.

Также вам понадобится сам git для Windows для работы с репозиторием. Качаем, устанавливаем.

2. Подготовка

Вам нужно убедиться, что существует директория %USERPROFILE%/.ssh, и если нет - создать её.


mkdir %USERPROFILE%/.ssh

Теперь пропишем в переменную окружения PATH путь к каталогу git. Я покажу, как это делается графическим путем (не из командной строки) на примере Windows 10.

Открываем свойства Моего компьютера.

Далее - раздел Дополнительные параметры системы.

Переходим в настройки переменных окружения.

Я предпочитаю настраивать окружение индивидуально для меня, поэтому - выберите переменную Path в верхнем списке (для текущего пользователя системы), и нажмите кнопку Изменить.

Добавьте строку с путём к директории bin, расположенной в том месте на диске, куда вы установили git.

Закрывайте все окна, подтверждая изменения.

Если у вас была открыта командная строка (консоль) - ее необходимо закрыть и открыть заново, чтобы изменения переменной окружения PATH вступили в силу.

3. Теперь приступим к созданию ключей SSH.

Для этого воспользуйтесь утилитой pyttygen, входящей в состав пакета PuTTY, который был установлен ранее.

После запуска - нажмите кнопку Generate.

Утилита будет ждать от вас последовательности случайных чисел, которую надо сгенерировать хаотичным движением курсора мыши вот по этой области окна:

Когда случайных чисел будет достаточно, утилита сгенерирует ключ. Теперь необходимо установить кодовую фразу, которая будет открывать доступ к приватному ключу.

Для работы с GitHub/BitBucket нам необходимо выгрузить два файла, содержащие приватный и публичный ключи.

Приватный ключ выгружается с помощью пункта меню Conversation -> Export OpenSSH key.

Его нужно сохранить в файл %USERPROFILE%/.ssh/id_rsa (помните, мы создали эту директорию?).

А вот публичный ключ нужно взять из окна самой программы - скопируйте текст в этом поле, и воспользовавшись любимым редактором текста (notepad тоже подойдет), сохраните его в файл %USERPROFILE%/.ssh/id_rsa.pub.

4. Теперь необходимо добавить публичный ключ в доверенные на сайтах GitHub и BitBucket.

Для GitHub - это можно сделать в разделе SSH and GPG keys в настройках профиля.

Для BitBucket - этот пункт в настройках профиля называется SSH keys, прямую ссылку не могу дать, она индивидуальная и содержит имя аккаунта.

5. Проверка работы.

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


> git pull
Enter passphrase for key '/c/Users/bvn13/.ssh/id_rsa':
Already up-to-date.
Current branch master is up to date.

on December 10, 2017