2FA дают проблемы при нажатии на GitHub

Я клонировал проект на GitHub на моем малине Pi, создаю новую ветку и выталкиваю все в репозиторий. Для этого мне нужны следующие команды:

git clone https://www.github.com/heinpauwelyn/my_repo
git checkout -b raspberry
git push origin raspberry

Проблема у меня в том, что я не могу нажать ветку на GitHub.com. Мне нужно ввести свое имя пользователя и пароль, но я не могу использовать для этого 2FA. Является ли это ошибкой в ​​ Git или GitHub, и есть ли способ получить ключ аутентификации и ввести его?

Я не включу 2FA в GitHub.

Ответ 1

с помощью 2FA вам необходимо создать токен доступа для использования в качестве пароля при аутентификации в GitHub в командной строке с URL-адресами HTTPS: https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled

или вы можете клонировать с помощью ssh https://help.github.com/articles/which-remote-url-should-i-use/#cloning-with-ssh-urls (также может быть полезно: <а2 > )

Ответ 2

с 2FA вам нужно сгенерировать личный токен доступа при нажатии на код. Этот личный токен будет использоваться в качестве пароля при передаче кода на Github. Вы можете увидеть, как создать личный токен доступа с https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line. Он будет использоваться, когда у вас есть клон репо с http URL. Это будет работать для всех хранилищ.

Если вы клонировали сквозной SSH, то после включения аутентификации 2F вы можете очень легко выполнить изменение без каких-либо изменений в нормальном поведении. Для этого вы используете пароль SSH в качестве пароля. Сначала требуется создать ключ SSH для вашего хранилища. Вы можете сгенерировать ключ SSH из https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent. Будет работать только один репозиторий. только для того конкретного репортерства, который был сгенерирован этим ключом SSH.

Ответ 4

Вы можете использовать HTTPS URL-адрес репозитория или SSH-URL-адрес для операций выталкивания, извлечения, клонирования или получения с локального сервера после добавления 2FA в свою учетную запись GitHub. Разница будет:

При использовании HTTPS URL: теперь для операций выталкивания, извлечения, извлечения или клонирования вы должны сгенерировать токен личного доступа из своей учетной записи GitHub, который будет использоваться в качестве пароля всякий раз, когда вас просят ввести пароль. Вы должны хранить токен в безопасности.

Посещение: Создание персонального токена доступа для командной строки

При использовании URL-адреса SSH: для проталкивания, извлечения, извлечения или клонирования через URL-адрес репозитория SSH необходимо настроить закрытый ключ и открытую пару для своей учетной записи. Это займет немного времени, но как только вы завершите настройку своего личного и открытого ключа, вам никогда не будет предложено ввести имя пользователя или пароль, потому что теперь GitHub знает вашу личность.

Для создания пары секретный ключ и открытый ключ читайте: Подключение к GitHub с SSH

Разница между использованием HTTPS URL и SSH URL:

Хотя HTTPS не блокируется никаким брандмауэром или какой-либо сетью, иногда может быть заблокирован SSH, и вы не сможете его использовать, однако это случается редко. При использовании HTTPS, как уже было сказано, у вас часто спрашивают имя пользователя и пароль (который является вашим личным токеном доступа), вы можете кэшировать его с помощью credential.helper но он будет сохранен в виде простого текста.

Что касается SSH, вы можете сгенерировать фразу-пароль для своего закрытого ключа. Как добавить пароль к закрытому ключу OpenSSH, который был создан без пароля?

Теперь ваш закрытый ключ будет защищен, но всякий раз, когда вы нажмете, потянете, клонируете или извлечете, пароль будет запрашиваться каждый раз. Чтобы избежать этого, вы можете использовать агент SSH, ключ SSH - все еще запрашивает пароль и фразу-пароль