git. Авторизация по https
2025-08-19
·
3 мин. для прочтения
Содержание
1 Создание токена доступа
1.1 Для GitHub
- Перейдите в
Settings → Developer Settings → Personal Access Tokens → Generate new token
. - Выберите права (минимум
repo
для работы с репозиториями). - Скопируйте токен (отображается только один раз).
1.2 Для GitLab
Preferences → Access Tokens
- Выберите
read_repository
иwrite_repository
. - Скопируйте токен (отображается только один раз).
1.3 Для Gitea
- Зайдите в настройки профиля
- Кликните на аватар в правом верхнем углу.
- Выберите
Settings
. - В левом меню выберите
Applications
→Manage Access Tokens
.
- Создайте новый токен
- В поле
Token Name
укажите название (например,my-token
). - Выберите права
- Для работы с репозиториями:
read:repository
,write:repository
. - Для доступа к API:
read:user
,write:user
.
- Для работы с репозиториями:
- Нажмите
Generate Token
.
- В поле
- Скопируйте токен (отображается только один раз).
2 Клонирование репозитория с HTTPS
- Клонируйте репозиторий:
git clone https://github.com/username/repo.git
- При запросе данных введите:
username
: ваш логин на платформе.password
: вставьте токен (не пароль).
3 Хранение учётных данных
3.1 Ручное указание токена в URL
- Для клонирования:
git clone https://username:your_token@github.com/username/repo.git
- Для существующего репозитория:
git remote set-url origin https://username:your_token@github.com/username/repo.git
3.2 Использование переменных окружения (для скриптов)
- Linux
export GIT_USERNAME="ваш_логин"
export GIT_PASSWORD="ваш_токен"
- Windows (PowerShell)
$env:GIT_USERNAME = "ваш_логин"
$env:GIT_PASSWORD = "ваш_токен"
- Использование в командах:
git clone https://$GIT_USERNAME:$GIT_PASSWORD@github.com/user/repo.git
3.3 Настройка автоматической аутентификации
- Git Credential Helper — это инструмент для безопасного хранения и автоматической подстановки учётных данных (логина, пароля, токенов) при работе с Git.
- Он избавляет от необходимости вводить данные при каждом взаимодействии с удалённым репозиторием.
3.3.1 Вариант. Кэширование учётных данных
- Хранит данные в памяти 15 минут
git config --global credential.helper cache
- Кэшировать в памяти на 1 час (3600 секунд)
git config --global credential.helper "cache --timeout=3600"
- Проверка настроек
git config --global --get credential.helper
3.3.2 Вариант. Постоянное хранение (для доверенных устройств)
- Сохранить в файл
~/.git-credentials
.
git config --global credential.helper store
- Первая операция запросит логин/токен, последующие — нет.
git pull
3.3.3 Вариант. Хранение в менеджере паролей gopass
4 Рекомендации по безопасности
- Никогда не коммитьте токены в код.
- Для публичных репозиториев используйте токены с ограниченными правами.
- Регулярно обновляйте токены (рекомендуется каждые 3-6 месяцев).
- Используйте
.gitignore
для файлов с чувствительными данными.
5 Миграция репозитория с SSH на HTTPS
5.1 Изменение URL удалённого репозитория
- Для каждого репозитория выполните в терминале:
git remote set-url origin https://github.com/username/repo.git
Замените:
username
→ ваш логин на GitHubrepo
→ название репозитория
Например, для репозитория
my-project
:
git remote set-url origin https://github.com/ivanov/my-project.git
5.2 Массовое изменение
- Создайте скрипт
git-ssh-to-https.sh
:
#!/bin/bash
for dir in *
do
if [[ -d ${dir} ]]
then
cd "$dir" || exit
repo_url=$(git remote get-url origin)
new_url=$(echo "$repo_url" | sed 's/git@github.com:/https:\/\/github.com\//; s/\.git$//').git
git remote set-url origin "$new_url"
echo "Updated: $dir → $new_url"
fi
done
- Или однострочник:
find . -type d -name .git -exec sh -c 'cd "{}" && cd .. && git remote set-url origin $(git remote get-url origin | sed "s/git@/https:\/\//; s/.com:/.com\//")' \;