Добрый день, столкнулся с таким вот новшеством на гитхабе. Если кратко, то они отключили авторизацию по паролям через https.
Это конечно хорошо что они заботятся о нашей безопасности, но лично мне пришлось потратить чуть ли не целый час чтобы разобраться как сейчас подключаться правильно.
Сообщение о ошибке выглядит вот так:
[nehrena@manjaro-nout hello]$ git push —set-upstream origin master
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token inst
ead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more in
formation.
fatal: Authentication failed for ‘http://github.com/nehrena/test_repo.git/’
Как авторизоваться в github.com правильно?
Сейчас осталось несколько способов, самые правильные из них это использовать token или ssh-key.
Авторизация через Token.
- Для начала нужно подтвердить email у себя в профиле на github.com (если вы этого еще не сделали).
- Зайти в настройки и найти там вкладку Developer settings.
- Там будет доступно создание токена и все его настройки. В этой же вкладке можно посмотреть уже существующие токены и скопировать их.
- Что делать с этим token? вот про это мало что расписано, но в недрах справки выясняется что этот токен сейчас можно использовать вместо пароля при внешней авторизации, чтобы избежать ошибки которую мы получили в начале.
Подключить внешний гит репозитарий на github.com можно будет командой:
git remote add origin http://LOGIN:TOKEN@github.com/nehrena_нужный_путь/test_repo.git
Авторизация через SSH key
- Открываем свой терминал.
- Создаём новый ssh ключ на своей локальной машине, обязательно указываем тот же email, что иcпользуется на github.com.
ssh-keygen -t ed25519 -C "your_email@example.com"
На старых линуксах может не поддерживаться новый алгоритм Ed25519, можно воспользоваться вот таким:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Тем самым мы создали новый ключ с меткой в которой указан наш емайл.
> Generating public/private ed25519 key pair.
- Сохраняем в файл наш ключ.
> Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
- Далее нас попросят ввести секретную фразу для ключа д
> Enter passphrase (empty for no passphrase): [Type a passphrase] > Enter same passphrase again: [Type passphrase again]
Сейчас нам нужно добавить свой ключик в аккаунт на github.com. Для этого сделаем следующее.
- Запускаем ssh-agent в фоне (background).
eval "$(ssh-agent -s)" > Agent pid 59566
- Добавляем свой SSH private key в ssh-agent. Если в начале у вас был выбран другой путь, то тут его тоже нужно будет изменить.
ssh-add ~/.ssh/id_ed25519
- Добавляем свой ключ на GitHub. Чтобы найти собственно сам ключ нужно будет в только что созданной директории просмотреть файлик
id_ed25519.pub
. Просто копируем его содержимое и вставляем в нужную вкладку на GitHub. - Если воздникли вопросы вот тут есть инструкция на английском Adding a new SSH key to your GitHub account.
Ну и после всего этого подключить внешний репозитарий на GitHub можно будет через команду:
git remote add origin git@github.com:LOGIN/test_repo.git
Как видно, тут мы уже не вводим никаких логинов и паролей, авторизация происходит по созданному выше ключу. А если нужно изменить уже существующий репозитарий:
git remote set-url origin git@github.com:LOGIN/test_repo.git
Если вы только начали изучать и пользоваться Git, то вот вам отличная ссылка:
GitHowTo — это интерактивный самоучитель, который познакомит вас с основами Git, там есть версия на русском.
Спасибо, разобрался… а то лень переводить было их сообщение с англицкого
Спасибо вам БОЛЬШОЕ за статью! Очень помогла разобраться.
бред какой-то. Нафига мне эти секретные ключи для секретных паролей!? к чему всё это? У меня там два урока лежит и те списанные…
Неожиданно, помогло.
Чувак, ты мегокрут! Два дня не мог найти в инете решение этой проблемы
Thanks, съэкономили мне время на эту глупость
благодарка от нуба))))