Использование ssh для работы с github

17 августа 2021 г. 6:43

Это краткое руководство к действию по настройке ssh на компьютере разработчика. Предположим, что у вас уже есть удаленный репозиторий github и локальный репозиторий, который требуется c ним синхронизировать.

Рассмотрим пошагово сам процесс:

Руководство к действию: подготовка

  • Чтобы синхронизировать локальный репозиторий с удаленным, первое, что необходимо - добавить ссылку на последний. Для этого переходим на страницу нашего репозитория на github, клацаем по кнопочке Code, в выпадающем окошке переходим на вкладку ssh:

Копируем валидную ссылку на ssh. Далее в терминале открываем папку с проектом и вводим туда следующую команду, где вместо git@github.com:Sanshain/flutter_tasksman.git указываем ссылку на свой репозиторий:

git remote add github git@github.com:Sanshain/flutter_tasksman.git

проверить успешность можно командой

git remote -v

В результатах должна присутствовать наша ссылка. origin и github на скрине - это имена записанных удаленных репозиторием. Перейдем к следующему шагу:

Генерация открытого ключа

Для генерации открытого ключа вам понадобится утилита ssh-keygen. Во многих дистрибутивах linux она предустановлена. На Windows я предпочитаю cygwin.

Команда ниже сгенерирует ключ по алгоритму RSA размером 4096 бит.

ssh-keygen -t rsa -b 4096 -C "digital-***@ya.ru"

Значение в кавычках после ключа -C - это комментарий. Этот комментарий может быть любым, но для работы с github это должен быть адрес электронной почты, указанной при регистрации аккаунта github

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

Если вы используете cygwin , то по дефолту для файлы будут созданы в каталоге C:\cygwin64\home\User\.ssh. Если git bash, то в C:\Users\User\.ssh.

  • Далее если вы работаете в Windows из под git bash, необходимо выполнить команду eval "$(ssh-agent -s)", в противном случае получим ошибку установления соединения. Далее переходим в каталог с ключами и выполняем команду для того, чтобы добавить секретный ключ в ssh-agent

ssh-add ~/.ssh/id_rsa

Получаем вод такой результат:

  • Далее в cmd из под директории с нашим публичным ключом выполним команду

clip < id_rsa.pub

Если у вас linux, то просто отобразим содержимое файла в bash и скопируем его:

cat id_rsa.pub

  • Переходим в настройки вашего аккаунта на github, и ищем в левом меню пункт SSH and GPG keys

  • Жмем кнопку New SSH key и вставляем в поле Key скопированный публичный ключ, в Title пишем название и нажимаем Add Key. Github попросит ввести пароль. После подтверждения картинка выглядит примерно так:

Проверить работу ключа можно командой:

ssh -T git@github.com

Результат должен выглядеть так:

ну или так:

Обратите внимание: если вы используете разные терминалы, то может оказаться, что работать ssh будет только в том, в котором эти манипуляции были совершены

На этом настройка ssh для github на нашем хосте завершена. Можно спокойно отправлять изменения на сервер github:

git push github <название_ветки>

На этом всем удачи и пока!

admin
1
(ваш голос учтен)
admin 27 сентября 2024 г. 20:20
Можно так же указать для `ssh-keygen` флаг `-f` (filename), чтобы указать конкретный файл для записи ключа вместо дефолтного `id_rsa`


Полезный линк по `ssh-keygen` https://hackware.ru/?p=9939#42
Ответить