GitHub не пускает по паролю

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

Это конечно хорошо что они заботятся о нашей безопасности, но лично мне пришлось потратить чуть ли не целый час чтобы разобраться как сейчас подключаться правильно.

gitHub

Сообщение о ошибке выглядит вот так:

[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.

  1.  Для начала нужно подтвердить  email у себя в профиле на github.com (если вы этого еще не сделали).
  2. Зайти в настройки и найти там вкладку Developer settings.
  3. Там будет доступно создание токена и все его настройки. В этой же вкладке можно посмотреть уже существующие токены и скопировать их.
  4. Что делать с этим token? вот про это мало что расписано, но в недрах справки выясняется что этот токен сейчас можно использовать вместо пароля при внешней авторизации, чтобы избежать ошибки которую мы получили в начале.

Подключить внешний гит репозитарий на github.com можно будет командой:

git remote add origin http://LOGIN:TOKEN@github.com/nehrena_нужный_путь/test_repo.git

Авторизация через SSH key

  1. Открываем свой терминал.
  2. Создаём новый 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.
  3. Сохраняем в файл наш ключ.
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
  4. Далее нас попросят ввести секретную фразу для ключа д
    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

Сейчас нам нужно добавить свой ключик в аккаунт на github.com. Для этого сделаем следующее.

  1. Запускаем ssh-agent в фоне (background).
    eval "$(ssh-agent -s)"
     > Agent pid 59566
  2. Добавляем свой SSH private key в ssh-agent. Если в начале у вас был выбран другой путь, то тут его тоже нужно будет изменить.
    ssh-add ~/.ssh/id_ed25519
  3. Добавляем свой ключ на GitHub. Чтобы найти собственно сам ключ нужно будет в только что созданной директории просмотреть файлик id_ed25519.pub. Просто копируем его содержимое и вставляем в нужную вкладку на GitHub.
  4.  Если воздникли вопросы вот тут есть инструкция на английском 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, там есть версия на русском.

GitHub не пускает по паролю: 1 комментарий

  • 09.09.2021 в 21:37
    Permalink

    Спасибо, разобрался… а то лень переводить было их сообщение с англицкого

    Ответить

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

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

Похожие записи: