🐧 Как исправить Git, который запрашивает учетные данные пользователя для HTTP (S) аутентификации |

🐧 Как исправить Git, который запрашивает учетные данные пользователя для HTTP (S) аутентификации

Мануал

Чтобы получить доступ к удаленному Git-репозиторию или работать с ним, вы можете использовать протоколы SSH или HTTP (S);

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

Однако при использовании HTTP (S) каждое соединение будет предлагать вам ввести имя пользователя и пароль (когда Git требуется аутентификация для определенного контекста URL) – пользователи Github хорошо это знают.

В этой статье мы покажем вам, как исправить эту штуку в Git,  когда систме всегда запрашивает у вас учетные данные пользователя для доступа по HTTP (S).

Мы расскажем о различных способах предотвращения повторного запроса Git имени пользователя и пароля при взаимодействии с удаленным репозиторием по HTTP (S).

Как установить Git на Linux

Если у вас не установлен пакет Git в вашей системе, выполните соответствующую команду для вашего дистрибутива Linux, чтобы установить его (при необходимости используйте команду Sudo).

$ sudo apt install git      [на Debian/Ubuntu]
# yum install git           [на CentOS/RHEL/Fedora]
$ sudo zypper install git   [на OpenSuse]
$ sudo pacman -S git        [на Arch Linux]

Ввод имени пользователя Git и пароля на удаленном URL

Как мы уже упоминали ранее, при клонировании удаленного репозитория Git по HTTP (S) каждому соединению требуются имя пользователя и пароль, как показано далее:
Чтобы Git не запрашивал ваше имя пользователя и пароль, вы можете ввести учетные данные для входа по URL, как показано ниже:
$ sudo git clone https://username:your_password@github.com/username/repo_name.git
или
$ sudo git clone https://username:your_password@github.com/username/repo_name.git local_folder
Главный недостаток этого метода в том, что ваше имя пользователя и пароль будут сохранены в команде в файле истории оболочки.
а также в файле .git/config в локальной папке, что представляет угрозу безопасности.
$ cat .git/config
Примечание. Для пользователей Github, которые включили двухфакторную аутентификацию или получают доступ к организации, использующей единый вход SAML, вы должны сгенерировать и использовать токен личного доступа вместо того, чтобы вводить пароль для HTTPS Git (как показано в примерах  в этом руководстве). Чтобы создать личный токен доступа, в Github перейдите в Settings=>Developer Settings=>Personal

Сохранение имени пользователя и пароля удаленного хранилища Git на диске

Второй способ – использовать Git credentials helper , чтобы сохранить имя пользователя и пароль в обычном файле на диске, как показано ниже:

$ git config credential.helper store				
или
$ git config --global credential.helper store
С этого момента Git будет записывать учетные данные в файл ~/.git-credentials для каждого контекста URL при первом обращении.
Чтобы просмотреть содержимое этого файла, вы можете использовать команду cat, как показано тут:
$ cat  ~/.git-credentials
Для последующих команд для того же контекста URL Git будет считывать ваши учетные данные из вышеуказанного файла.

Как и предыдущий метод, этот способ передачи учетных данных пользователя в Git также небезопасен, поскольку файл хранилища не зашифрован и защищен только стандартными правами файловой системы.

Третий метод, описанный ниже, считается более безопасным.

Кэширование удаленного Git-репозитория с именем пользователя и паролем в памяти

И последнее, но не менее важное: вы также можете использовать Git credentials helper, чтобы временно сохранить ваши учетные данные в памяти на некоторое время.
Для этого выполните следующую команду:
$ git config credential.helper cache
или
$ git config --global credential.helper cache
После запуска вышеуказанной команды, когда вы пытаетесь получить доступ к удаленному частному репозиторию в первый раз, Git запросит ваше имя пользователя и пароль и сохранит их в памяти в течение некоторого времени.
Время кэширования по умолчанию составляет 900 секунд (или 15 минут), после чего Git предложит вам снова ввести имя пользователя и пароль.
Вы можете изменить его следующим образом (1800 секунд = 30 минут или 3600 секунд = 1 час).
$ git config --global credential.helper 'cache --timeout=18000'
или
$ git config --global credential.helper 'cache --timeout=36000'
Для получения дополнительной информации о Git и учетных данных см. справочные страницы.
$ man git
$ man git-credential-cache
$ man git-credential-store
Было ли это руководство полезным?
Дайте нам знать через форму комментариев ниже.
Вы также можете поделиться любыми вопросами или мыслями по этой теме.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий