Чтобы получить доступ к удаленному 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
$ 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
$ 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
$ cat ~/.git-credentials
Как и предыдущий метод, этот способ передачи учетных данных пользователя в Git также небезопасен, поскольку файл хранилища не зашифрован и защищен только стандартными правами файловой системы.
Третий метод, описанный ниже, считается более безопасным.
Кэширование удаленного Git-репозитория с именем пользователя и паролем в памяти
$ git config credential.helper cache или $ git config --global credential.helper cache
$ git config --global credential.helper 'cache --timeout=18000' или $ git config --global credential.helper 'cache --timeout=36000'
$ man git $ man git-credential-cache $ man git-credential-store