Использование ssh для работы с github
Это краткое руководство к действию по настройке 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 <название_ветки>
Полезный линк по `ssh-keygen` https://hackware.ru/?p=9939#42