Как создать ssh key github

Регистрация на Гитхабе. Работа через консоль

Гитхаб — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки. Он как раз и основан на системе контроля версий Гит. Кроме размещения кода участники могут общаться, комментировать правки друг друга, а также следить за новостями знакомых. Именно в нём работаем мы в Академии и ученики на интенсивах.

Регистрация и установка

Устанавливаем Гит

Если до этого вы не работали с Гитом, то его нужно установить. Рассмотрим, как это сделать в популярных операционных системах.

Установка в Linux

Если вы хотите установить Git под Linux как бинарный пакет, это можно сделать, используя обычный менеджер пакетов вашего дистрибутива. Пользователи Fedora, могут воспользоваться yum: $ yum install git-core Для дистрибутивов, основанных на Debian (например Ubuntu), используйте apt-get: $ sudo apt-get install git

Установка на Mac

Сперва устанавливаем Homebrew если он у вас ещё не стоит. Также вы можете установить его с помощью команды:

После установки Homebrew, введите в терминале команду: brew install git .

Эта команда установит Гит на ваш компьютер.Чтобы прописать новый путь к установке Гит введите команду: export PATH=/usr/local/bin:$PATH

Установка в Windows

Здесь всё просто. Просто скачайте exe-файл инсталлятора со страницы проекта на Гитхабе и запустите его.

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

Регистрация на Гитхабе

Чтобы начать работать с Гитхабом, нужно зарегистрироваться на нём, если вы ещё этого не сделали. Регистрация предельно проста:

Страница регистрации Гитхаб

  1. Переходим на сайт Гитхаба.
  2. Нажимаем кнопку Sign up (зарегистрироваться).
  3. На странице регистрации вам предложат ввести обязательные данные:
    • имя пользователя;
    • адрес электронной почты;
    • пароль.

    Страница регистрации Гитхаб

  4. После этого вы попадёте на небольшой опрос от Гитхаба, который можете просто пропустить, нажав skip this step.

Начинаем работу

Устанавливаем SSH-ключи

SSH-ключ нужен чтобы быстро устанавливать соединение с Гитхабом, не вводя пароля. Кроме того, SSH — единственный из сетевых протоколов, предоставляющий доступ и на чтение, и на запись. Два других сетевых протокола (HTTP[S] и Git) в большинстве случаев дают доступ только на чтение, поэтому даже если они вам доступны, вам всё равно понадобится SSH для записи. К тому же SSH — протокол с аутентификацией и шифрованием трафика, что называется «из коробки». Недостаток SSH в том, что, используя его, вы не можете обеспечить анонимный доступ к репозиторию.

Доступ к удалённому репозиторию по SSH — самый распространённый вариант настройки удалённого доступа, быстрый, удобный и безопасный. Настроив авторизацию в SSH по ключам, вы будете избавлены от необходимости вводить пароли для доступа к репозиторию, сохраняя, однако, приемлемый уровень безопасности.

  1. Откройте используемый вами терминал.
  2. Введите команду ssh-keygen -t rsa -b 4096 -C «your_email@example.com» , она создаст новый SSH-ключ, используя вашу электронную почту как метку. В качестве электронного адреса укажите электронную почту, которую использовали при регистрации аккаунта в Гитхаб.
  3. Вам будет предложено ввести пароль к ключу. Вы можете не использовать его или назначить любой. Пароль защищает ваш ключ от нежелательных вторжений. Установка пароля к SSH-ключуУстановка пароля к SSH-ключу
  4. После этого будет предложено дважды ввести придуманный пароль (или просто этот шаг будет пропущен, если вы решили не создавать пароль), и затем создастся ключ. Повторить пароль к SSH-ключуПовторить пароль к SSH-ключу
  5. Добавляем ключ в ssh-agent. Проверяем доступность ключа командой eval «$(ssh-agent -s)» и добавляем командой ssh-add

Примечание: у пользователей Windows, которые пользуются программой Cmder, могут возникнуть проблемы с командой eval «$(ssh-agent -s)» . Им будет выведено вот такое сообщение об ошибке:

«eval» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

В Сmder для запуска ssh-agent можно использовать команду start-ssh-agent .

Если проблема осталась, то рекомендуем воспользоваться программой Git Bash.

Примечание: если вы используете macOS Sierra 10.12.2 или более позднюю версию, то вам нужно будет модифицировать ваш

/.ssh/config файл, чтобы автоматически загрузить ключи в ssh-agent и хранить пароли.

Также вы можете добавить свой приватный ключ в ssh-agent и сохранить пароль к нему с помощью команды $ ssh-add -K

/.ssh/id_rsa . Если вы создали свой ключ с другим именем или добавили существующий ключ с другим именем, замените в команде id_rsa на имя вашего личного ключа.

После того как создан ключ, его остаётся только добавить на Гитхаб. Для этого скопируем его содержимое командой pbcopy <

/.ssh/id_rsa.pub (для пользователей macOS или Linux) или clip <

/.ssh/id_rsa.pub (для пользователей Windows). Также вы можете просто открыть файл .pub с именем вашего ключа и скопировать его содержимое. Переходим на страницу https://github.com/settings/keys и нажимаем кнопку New SSH key. Введите произвольное имя ключа и вставьте код ключа из буфера обмена. После этого можно нажимать Add SSH key. Необходимо будет ввести пароль от аккаунта, чтобы подтвердить действие.

Добавляем ключ на Гитхаб

Добавляем ключ на Гитхаб

Проверить, что всё сделано верно, можно командой ssh -T git@github.com . Она должна выдать похожее сообщение:

Результат проверки добавления ключа

Результат проверки добавления ключа

Теперь можно клонировать любой доступный репозиторий используя его SSH-ссылку.

Клонируем репозиторий по SSH-ссылке

Клонируем репозиторий по SSH-ссылке

Более подробное описание работы с Гитхабом мы рассмотрим в статье «Pабота с Гит через консоль»

Без Гита и жизнь не та

Но нужно уметь работать не только с ним. Практика в HTML, CSS и JavaScript — в тренажёрах. Без воды.

Добавление нового ключа SSH в GitHub

Мануал

Аутентификация на основе ключа SSH более надежна, чем аутентификация с помощью пароля и маркера доступа. Она также позволяет автоматизировать работу git в скриптах или фоновых процессах.

Выполните следующие шаги для добавления нового ключа ssh в аккаунт Github.

  • Проверьте доступные SSH-ключи
  • Сгенерируйте новый SSH-ключ
  • Добавьте SSH-ключ в аккаунт Github
  • Протестируйте

Проверка доступных ключей SSH

Войдите в систему Unix/Linux и откройте терминал.

/.ssh/ на наличие файлов ключей ssh в вашей системе.

Если в системе уже есть файлы пары ключей, вы можете использовать их для настройки с Github.

В моем случае файлы уже существуют.

Генерирование нового ключа SSH

Если пара ключей SSH недоступна, используйте инструмент командной строки ssh-keygen для генерации нового ключа.

Откройте терминал и введите:

Нажмите клавишу Enter для любого ввода, предложенного командой:

Теперь вы увидите два файла, созданных в каталоге

Один из них – закрытый ключ (id_rsa), а другой – открытый ключ (id_rsa.pub).

Храните файл закрытого ключа в защищенном месте и никому не передавайте.

Добавьте SSH-ключ в аккаунт Github

Поскольку вы создали пару ключей SSH в своей системе.

Скопируйте содержимое открытого ключа (файл с расширением .pub) и выполните следующие шаги для добавления ключа ssh в аккаунт Github.

В правом верхнем углу нажмите на значок профиля и выберите Settings.

Откройте Настройки пользователя Github

В левой боковой панели нажмите SSH and GPG keys.

Потом в New SSH key

Введите название и вставьте содержимое открытого ключа в раздел Key.

Нажмите Add SSH Key
Введите пароль для аутентификации.
Все готово

Тестирование

Чтобы проверить настройки, просто клонируйте любой репозиторий, доступный для вашей учетной записи по Git url.

В результате запрос будет аутентифицирован с помощью пары ключей SSH.

После успешной аутентификации хранилище будет клонировано в вашей системе.

Заключение

В этом руководстве вы научились настраивать SSH-ключ для вашей учетной записи Github.

How to generate ssh keys (for github)

Question: How do I generate ssh private and public keys (to be used in GitHub/GitLab) using command line.

The command below generates the error

I am using Windows XP.

6 Answers 6

The command to run is only

All the rest beginning with line 2 of your script is the output of ssh-keygen.

And replace you@example.com with your email address.

Have a look at the manual for ssh-keygen to look for additional options. You should probably use a longer key by adding -b 4096 to the option list.

Here is the command

This will generate a key for you. You have to copy that and insert into your Github’s account (just one time).

Hazarapet Tunanyan's user avatar

Step 1: Generate Your SSH Key

Step 2: Use the Key

Then add the key we just generated. If you selected a different path than the default, be sure to replace that path in the command.

Step 3: Add the SSH Key on GitHub

if clip not found then add the next command

Finally Result something like on your cmd

copy from your cmd and go to your GitHub account setting find ssh and gpg keys

Naved Khan's user avatar

Solution: ssh-keygen -t rsa

Explanation : ssh-keygen is a tool for creating new authentication key pairs for SSH. Such key pairs are used for automating logins, single sign-on, and for authenticating hosts

(for example cloning project from your private repo on Github straight to your aws machine).

Options: You can perform more complicated operations and using flags in order to generate a tailor-made key according to your use case, extended functionality are more powerful and secured. The basic flags are: bits (Large integers making the the RSA key be less vulnerable and hard to crack), passphrase (similar to password) , type (dsa/ecdsa/ed25519/rsa) , comment for the specific ssh token (email or user name) and output key (default store on

Synopsis: ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa] [-N new_passphrase] [-C comment] [-f output_keyfile]

Переходим с HTTPS на SSH доступ в GitHub

C 13 августа 2021 года Github блокирует доступ по HTTPS протоколу к репозиториям, то есть теперь вы не сможете, получить или отправить изменений в удаленный репозиторий без SSH ключа.

В этом гайде покажу как создать ключ, загрузить на сервер и перенастроить локальный репозиторий на SSH доступ. В качестве примера используется Windows 10 и GitBash.

Что необходимо #

  • Gitbash или установленный git для Linux и macOS.
  • Репозиторий на GitHub.

Создание пары ключей SSH #

SSH (Secure SHell) — это протокол, который позволяет безопасно авторизоваться в различные сервисы, подключаться к удаленным терминалам, передавать по шифрованным каналам информацию. Очень распрастранен при работе с репозиториями. Использует пару ключей — публичный и приватный.

Открывайте GitBash или терминал, вводите:

Если у вас будет ошибка: No such file or directory — создайте папку, выполнив команду:

После заходите в папку.

Для генерации ключа используется программа ssh-keygen , она обычно установлена, в Windows встроена в GitBash.

Github рекомендует использовать ключ типа ed25519, так как этот алгоритм на данный момент самый безопасный, с коротким открытым ключом (68 символов, против 544 у RSA) и что важно — быстро работает. За тип ключа отвечает параметр -t .

Длина ключа рекомендуется 4096 бит, при создании это параметр -b .

При генерации ключей , ключи по-умолчанию будут сохранены в папке .ssh текущего пользователя.

В итоге для запуска генерации ключа, выполните:

Вам будут заданы несколько вопросов:

Куда сохранить файл ( Enter file in which to save. ) — нажмите Enter и по умолчанию ключ будет назван id_ed25519 и сохранится в .ssh папке профиля текущего пользователя. (в Windows папки пользователя в C:/Users, в macOs/Linux папка пользователя в /home)

Введите кодовую фразу ( Enter passphrase. ) — опционально, кодовая фраза это элемент безопасности. Если ваш приватный ключ попадет в чужие руки, им не смогут воспользоваться пока не подберут кодовую фразу. Это даст вам больше времени для замены ключей и отказа от скомпрометированного ключа. Предлагаю в данный момент отказаться от ключевой фразы и просто нажать Enter.

Подтвердить кодовую фразу или ее отсутсвие, тоже нажав Enter.

В результате вам покажут рисунок вашего ключа:

Проверьте, на месте ли ключи, выведите список файлов в папке .ssh :

Вывод должен быть таким:

первый файл это приватный ключ, а второй с .pub это публичный.

Активация ключа #

Для того чтобы ключ использовался системой, необходимо добавить ключ в ssh-agent.

результат, номер процесса может отличаться:

Добавьте ранее созданный ключ:

При успехе получите ответ:

Ключи SSH готовы к использованию!

Добавление публичного ключа в профиль на GitHub #

ℹ Кратко про ключи. С помощью публичного ключа, каждый может зашифровать информацию, расшифровать может только владелец приватного ключа, поэтому приватный ключ нельзя передавать, отправлять или хранить в открытом виде. Желательно пару ключей дополнительно скопировать на отдельный носитель, на случай потери ключа на компьютере.

В GitHub для работы с репозиториями скопируйте публичный ключ, одним из способов:

  • в GitBash выполните команду:

это скопирует публичный ключ в буфер обмена.

  • если данная команда не работает, откройте файл id_ed25519.pub в любом текстовом редакторе, и скопируйте все содержимое файла, публичный ключ выглядит так:
  • Переходите на страницу управления ключами:

Нажимайте не кнопку New SSH Key

В поле Key вставьте скопированный ключ:

Поле добавления ключа SSH

В поле Title можете вставить название ключа, пригодится если у вас будет в профиле более одного ключа. Поможет их различать.

Нажимайте кнопку Add SSH Key .

Теперь можно использовать SSH доступ к вашим репозиторияем!

Получение репозитория по SSH #

Откройте репозиторий и скопируйте ссылку для SSH доступа:

Выбор ссылки для доступа к репозиторию

И как обычно используйте команду git clone:

Как сменить работу с HTTPS на SSH #

Если у вас есть локальный (на вашем рабочем компьютере) репозиторий полученный по https, очень просто сменить доступ на SSH.

Для этого убедитесь что доступ по HTTPS, для этого выведите список remote:

ссылки начинаются c https, а значит вы не можете ни загрузить ни получить обновления удаленного репозитория.

Зайдите в репозиторий и скопируйте SSH ссылку доступа, перейдите в локальный репозиторий и удалите текущий remote origin:

и добавьте новый, последняя строка в команде это ссылка доступа SSH:

проверьте список удаленных репозиториев:

и если у вас формат без https в начале ссылки, то все выполнено верно, можно работать с репозиторием и проверить командой git fetch

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *