GitGub отключили парольную авторизацию, и предлагают использовать SSH с PAT. О том как это настроить и использовать читайте далее в статье.
Сложно избавиться о раздражения, когда требуется что то опять настраивать для выполнения ежедневных рутинных операций, но это важная часть большой темы под названием «безопасность». Потому, скрепя сердце, приступим.
Весь процесс состоит из нескольких частей.
Генерация PAT на стороне GitHub
Это часть подробно описана на GitHub и повторять её нет смысла. Читайте следующий мануал.
В настройках вашего профиля (https://github.com/settings/tokens : Settings -> Developer settings -> Personal access tokens) есть вкладка настройки токенов. Создавайте новый токен (Generate new token).
Настройка SSH origin url в локальных настройках репозитория
Скорее всего, до этого вы использовали HTTPS в качестве протокола подключения к удаленному репозиторию и, если посмотреть информацию о origin, вы увидите что то следующее:
1 2 3 |
git remote -v origin https://github.com/sshra/database-russian-morphology.git (fetch) origin https://github.com/sshra/database-russian-morphology.git (push) |
Нужно изменить ссылки на origin. Это можно поправить напрямую в конфигурации .git или командой вроде:
1 |
git remote set-url origin git@github.com:sshra/database-russian-morphology.git |
Проверьте, что получилось:
1 2 3 |
git remote -v origin git@github.com:sshra/database-russian-morphology.git (fetch) origin git@github.com:sshra/database-russian-morphology.git (push) |
Генерация SSH ключа на локальной машине
Следующая операция может потребовать установить/обновить SSH клиент. Она создаёт новый SSH ключ.
1 |
ssh-keygen -t ed25519-sk -C "your_email@as_registred_on_github.com" |
Если Ed25519 алгоритм не поддерживается по какой то причине, то можно попробовать другой алгоритм:
1 |
ssh-keygen -t ecdsa-sk -C "your_email@as_registred_on_github.com" |
Генератор запросит дважды пароль для ключа (он может быть пустой). И в итоге создаст пару файлов — приватный и публичный ключи в вашей домашней папке (/home/USERNAME/.ssh/id_ed25519 (и тоже-самое.pub). Ну или в /root/.ssh, если вы работаете из под рута.
Подключение SSH ключа в github аккаунт
Используйте еще один мануал от github.
Суть в следующем: в Settings -> SSH and GPD keys нужно добавить New SSH key. Скопируйте туда в поле ключа содержимое файла вашего публичный ключа (id_ed25519.pub).
Итог
Остаётся лишь попробовать выполнить операции с вашим репозиторием, надеюсь, у вас получилось.
И если git будет спрашивать пароль, то вместо пароля вы используете PAT ключ (вы ведь его сохранили где то, как было указано в мануале от github?).