I git push
моя работа в удаленном репозитории Git.
Каждый push
предложит мне ввести username
и password
. Я бы хотел избежать этого для каждого нажатия, но как настроить, чтобы избежать его?
I git push
моя работа в удаленном репозитории Git.
Каждый push
предложит мне ввести username
и password
. Я бы хотел избежать этого для каждого нажатия, но как настроить, чтобы избежать его?
Откройте терминал для создания ключей ssh:
cd ~ #Your home directory
ssh-keygen -t rsa #Press enter for all values
(работает только в том случае, если программа фиксации способна использовать сертификаты/частные и общедоступные ключи ssh)
Ниже приведено прохождение для putty gen для вышеуказанных шагов
Этот шаг зависит от того, как настроен ваш пульт.
Если это репозиторий GitHub и у вас есть права администратора, перейдите в настройки и нажмите 'добавить ключ SSH'. Скопируйте содержимое вашего ~/.ssh/id_rsa.pub
в поле с надписью "Key".
Если ваш репозиторий управляется кем-то другим, дайте администратору ваш id_rsa.pub
.
Если ваш удаленный репозиторий администрируется вашим, вы можете использовать эту команду, например:
scp ~/.ssh/id_rsa.pub [email protected]_IP:~/.ssh/authorized_keys/id_rsa.pub
Если вы выполнили указанные выше шаги и все еще получаете приглашение пароля, убедитесь, что ваш URL-адрес репо находится в форме
git+ssh://[email protected]/username/reponame.git
в отличие от
https://github.com/username/reponame.git
Чтобы просмотреть URL-адрес репо, выполните:
git remote show origin
Вы можете изменить URL с помощью:
git remote set-url origin git+ssh://[email protected]/username/reponame.git
[1] В этом разделе содержится ответ от Eric P
Запустите следующую команду для включения кэширования учетных данных.
$ git config credential.helper store
$ git push https://github.com/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>
Использование также должно указывать кеширование expire,
git config --global credential.helper 'cache --timeout 7200'
После включения кэширования учетных данных он будет кэшироваться для 7200 секунд (2 часа).
Если у вас уже установлены ваши SSH-ключи и вы все еще получаете приглашение пароля, убедитесь, что ваш URL-адрес репо находится в форме
git+ssh://[email protected]/username/reponame.git
в отличие от
https://github.com/username/reponame.git
Чтобы просмотреть URL-адрес репо, выполните:
git remote show origin
Вы можете изменить URL с помощью git remote set-url
следующим образом:
git remote set-url origin git+ssh://[email protected]/username/reponame.git
Просто используйте параметр --repo
для команды git push. Вот так:
$ git push --repo https://name:[email protected]/name/repo.git
Я использовал ссылку https (https://github.com/org/repo.git
)
вместо ссылки ssh;
[email protected]:org/repo.git
Переключение решило проблему для меня!
Вы можете использовать git-credential-store через
git config credential.helper store
который хранит ваш пароль на диске.
Используйте git-credential-cache, который по умолчанию хранит пароль в течение 15 минут.
git config credential.helper cache
чтобы установить другой тайм-аут, используйте --timeout
(здесь 5 минут)
git config credential.helper 'cache --timeout=300'
Подключите свой клиент git к хранилищу учетных записей ОС. Например, в Windows вы связываете помощника учетных данных с wincred:
git config --global credential.helper wincred
Есть ли способ пропустить ввод пароля при использовании https://в GitHub?
Я использовал ответ, который предложил Павел, и это сработало для меня. Моя разница заключалась в том, чтобы сделать это, пока я добавлял пульт так: git remote add (alias) https://(name:password)@github.com/(the remote address).git
Все это возникает из-за того, что git не предоставляет опции в командах clone/pull/push/fetch для отправки учетных данных через канал. Хотя он дает credential.helper, он хранится в файловой системе или создает демона и т.д. Часто учетные данные git являются системными уровнями, и onus, чтобы сохранить их в безопасности, находится в приложении, вызывающем команды git. Очень небезопасно.
Вот что я должен был обойти. 1. git версия (git --version) должна быть больше или равна 1.8.3.
GIT CLONE
Для клонирования используйте "git clone URL" после изменения URL-адреса из формата http://{myuser} @{my_repo_ip_address}/{myrepo_name.git} в http://{myuser}: {mypwd } @{my_repo_ip_address}/{myrepo_name.git}
Затем очистите репозиторий пароля, как в следующем разделе.
PURGING
Теперь это исчезло бы и
Если ваше приложение использует Java для выполнения этих команд, используйте ProcessBuilder вместо Runtime. Если вы должны использовать Runtime, используйте getRunTime(). Exec, который принимает массив String в качестве аргументов с /bin/ bash и -c как аргументы, а не тот, который принимает один аргумент String как.
GIT FETCH/PULL/PUSH
Мое решение в Windows:
ssh-keygen -t rsa
(Нажмите Enter для всех значений)Your public key has been saved in /c/Users/<your_user_name_here>/.ssh/id_rsa.pub
В операционной системе Windows используйте это вместо этого, это работает для меня:
https://{Username}:{Password}@github.com/{Username}/{repo}.git
например.
git clone https://{Username}:{Password}@github.com/{Username}/{repo}.git
git pull https://{Username}:{Password}@github.com/{Username}/{repo}.git
git remote add origin https://{Username}:{Password}@github.com/{Username}/{repo}.git
git push origin master
Вам нужно настроить секретный ключ SSH, вы можете просмотреть эту , как выполнить настройку на Mac, если вы находитесь в Linux руководство должно быть почти таким же, в Windows вам понадобится инструмент, например MSYS.
Шаг 1 -
Создайте SSH-ключи в своей Linux-системе, используя следующую команду
ssh-keygen -t rsa -b 4096 -C "your_email"
Он будет запрашивать парольную фразу и имя файла (по умолчанию будет ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub)
Шаг 2 -
После создания файлов добавьте открытый ключ id_rsa.pub в раздел ssh учетной записи github.
Шаг 3 -
На вашем компьютере добавьте закрытый ключ id_rsa в ssh-agent, используя следующую команду
ssh-add ~/.ssh/id_rsa
Шаг 4 -
Теперь добавьте удаленный url git @github.com: имя_пользователя/repo_name.git в локальное репо git, используя команду ниже.
git remote remove origin
git remote add origin [email protected]:user_name/repo_name.git
Вот оно.
Появляется сообщение о том, что, по крайней мере, при использовании TortoiseGIT в Windows можно создавать ключи SSH и передавать их на сервер GIT, используя просто:
> ssh-keygen.exe
> ssh-copy-id [username]@[GIT_server]